if exists( "b:love_syntax" ) finish endif let b:love_syntax = 1 syntax match lovefunction "\(^\|\s\)love\.\(directorydropped\|draw\|errhand\|filedropped\|focus\|gamepadaxis\|gamepadpressed\|gamepadreleased\|joystickadded\|joystickaxis\|joystickhat\|joystickpressed\|joystickreleased\|joystickremoved\|keypressed\|keyreleased\|load\|lowmemory\|mousefocus\|mousemoved\|mousepressed\|mousereleased\|quit\|resize\|run\|textedited\|textinput\|threaderror\|touchmoved\|touchpressed\|touchreleased\|update\|visible\|wheelmoved\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(getVersion\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getPointer\|getSize\|getString\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(type\|typeOf\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(clone\|getAttenuationDistances\|getChannels\|getCone\|getDirection\|getDuration\|getPitch\|getPosition\|getRolloff\|getType\|getVelocity\|getVolume\|getVolumeLimits\|isLooping\|isPaused\|isPlaying\|isStopped\|pause\|play\|resume\|rewind\|seek\|setDirection\|setAttenuationDistances\|setCone\|setLooping\|setPitch\|setPosition\|setRolloff\|setVelocity\|setVolume\|setVolumeLimits\|stop\|tell\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(audio\.\(getDistanceModel\|getDopplerScale\|getSourceCount\|getOrientation\|getPosition\|getVelocity\|getVolume\|newSource\|pause\|play\|resume\|rewind\|setDistanceModel\|setDopplerScale\|setOrientation\|setPosition\|setVelocity\|setVolume\|stop\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(event\.\(clear\|poll\|pump\|push\|quit\|wait\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(close\|flush\|getBuffer\|getFilename\|getMode\|getSize\|isEOF\|isOpen\|lines\|open\|read\|seek\|setBuffer\|write\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getExtension\|getFilename\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(filesystem\.\(append\|areSymlinksEnabled\|createDirectory\|exists\|getAppdataDirectory\|getDirectoryItems\|getIdentity\|getLastModified\|getRealDirectory\|getRequirePath\|getSaveDirectory\|getSize\|getSourceBaseDirectory\|getUserDirectory\|getWorkingDirectory\|isDirectory\|isFile\|isFused\|isSymlink\|lines\|load\|mount\|newFile\|newFileData\|read\|remove\|setIdentity\|setRequirePath\|setSource\|setSymlinksEnabled\|unmount\|write\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getDimensions\|getFilter\|getFormat\|getHeight\|getMSAA\|getWidth\|getWrap\|isActive\|newImageData\|renderTo\|setFilter\|setWrap\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getAscent\|getBaseline\|getDescent\|getFilter\|getHeight\|getLineHeight\|getWidth\|getWrap\|hasGlyph\|setFallbacks\|setFilter\|setLineHeight\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(attachAttribute\|getDrawMode\|getDrawRange\|getTexture\|getVertex\|getVertexAttribute\|getVertexCount\|getVertexFormat\|getVertexMap\|isAttributeEnabled\|setAttributeEnabled\|setDrawMode\|setDrawRange\|setTexture\|setVertex\|setVertexAttribute\|setVertexColors\|setVertexMap\|setVertices\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getData\|getDimensions\|getFilter\|getFlags\|getHeight\|getMipmapFilter\|getWidth\|getWrap\|refresh\|setFilter\|setMipmapFilter\|setWrap\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(clone\|emit\|getCount\|getAreaSpread\|getBufferSize\|getColors\|getDirection\|getEmissionRate\|getInsertMode\|getLinearAcceleration\|getLinearDamping\|getEmitterLifetime\|getOffset\|getParticleLifetime\|getPosition\|getRadialAcceleration\|getRotation\|getSizes\|getSizeVariation\|getSpeed\|getSpin\|getSpinVariation\|getSpread\|getTexture\|getTangentialAcceleration\|hasRelativeRotation\|isActive\|isPaused\|isStopped\|moveTo\|pause\|reset\|setAreaSpread\|setBufferSize\|setColors\|setDirection\|setEmissionRate\|setEmitterLifetime\|setInsertMode\|setLinearAcceleration\|setLinearDamping\|setOffset\|setParticleLifetime\|setPosition\|setQuads\|setRadialAcceleration\|setRelativeRotation\|setRotation\|setSizes\|setSizeVariation\|setSpeed\|setSpin\|setSpinVariation\|setSpread\|setTexture\|setTangentialAcceleration\|start\|stop\|update\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getViewport\|setViewport\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getExternVariable\|getWarnings\|send\|sendColor\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(add\|attachAttribute\|clear\|flush\|getBufferSize\|getColor\|getCount\|getTexture\|set\|setBufferSize\|setColor\|setTexture\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(add\|addf\|clear\|getFont\|getHeight\|getWidth\|set\|setf\|setFont\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(graphics\.\(arc\|circle\|clear\|discard\|draw\|ellipse\|getBackgroundColor\|getBlendMode\|getCanvas\|getCanvasFormats\|getColor\|getColorMask\|getCompressedImageFormats\|getDefaultFilter\|getDimensions\|getFSAA\|getFont\|getHeight\|getLineJoin\|getLineStyle\|getLineWidth\|getFullscreenModes\|getShader\|getStats\|getStencilTest\|getSupported\|getSystemLimits\|getPointSize\|getRendererInfo\|getScissor\|getWidth\|intersectScissor\|isGammaCorrect\|isWireframe\|line\|newCanvas\|newFont\|newMesh\|newImage\|newImageFont\|newParticleSystem\|newShader\|newText\|newQuad\|newScreenshot\|newSpriteBatch\|newVideo\|origin\|points\|polygon\|pop\|present\|print\|printf\|push\|rectangle\|reset\|rotate\|scale\|setBackgroundColor\|setBlendMode\|setCanvas\|setColor\|setColorMask\|setDefaultFilter\|setFont\|setInvertedStencil\|setLineJoin\|setLineStyle\|setLineWidth\|setNewFont\|setShader\|setPointSize\|setScissor\|setStencilTest\|setWireframe\|shear\|stencil\|translate\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getDimensions\|getFormat\|getHeight\|getMipmapCount\|getWidth\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(encode\|getDimensions\|getHeight\|getPixel\|getWidth\|mapPixel\|paste\|setPixel\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(image\.\(isCompressed\|newCompressedData\|newImageData\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getAxes\|getAxis\|getAxisCount\|getButtonCount\|getGUID\|getGamepadAxis\|getGamepadMapping\|getHat\|getHatCount\|getID\|getName\|getVibration\|isConnected\|isDown\|isGamepad\|isGamepadDown\|isVibrationSupported\|setVibration\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(joystick\.\(getJoystickCount\|getJoysticks\|loadGamepadMappings\|saveGamepadMappings\|setGamepadMapping\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(keyboard\.\(getKeyFromScancode\|getScancodeFromKey\|hasKeyRepeat\|hasTextInput\|isDown\|isScancodeDown\|setKeyRepeat\|setTextInput\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(evalulate\|getControlPoint\|getControlPointCount\|getDegree\|getDerivative\|getSegment\|insertControlPoint\|removeControlPoint\|render\|renderSegment\|rotate\|scale\|setControlPoint\|translate\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getFormat\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getSeed\|getState\|random\|randomNormal\|setSeed\|setState\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(math\.\(compress\|decompress\|gammaToLinear\|getRandomSeed\|getRandomState\|isConvex\|linearToGamma\|newBezierCurve\|newRandomGenerator\|noise\|random\|randomNormal\|setRandomSeed\|setRandomState\|triangulate\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getType\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(mouse\.\(getCursor\|getPosition\|getRelativeMode\|getSystemCursor\|getX\|getY\|hasCursor\|isDown\|isGrabbed\|isVisible\|newCursor\|setCursor\|setGrabbed\|setPosition\|setRelativeMode\|setVisible\|setX\|setY\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(applyAngularImpulse\|applyForce\|applyLinearImpulse\|applyTorque\|destroy\|getAngle\|getAngularDamping\|getAngularVelocity\|getContactList\|getFixtureList\|getGravityScale\|getInertia\|getJointList\|getLinearDamping\|getLinearVelocity\|getLinearVelocityFromLocalPoint\|getLinearVelocityFromWorldPoint\|getLocalCenter\|getLocalPoint\|getLocalVector\|getMass\|getMassData\|getPosition\|getType\|getUserData\|getWorld\|getWorldCenter\|getWorldPoint\|getWorldPoints\|getWorldVector\|getX\|getY\|isActive\|isAwake\|isBullet\|isDestroyed\|isFixedRotation\|isSleepingAllowed\|resetMassData\|setActive\|setAngle\|setAngularDamping\|setAngularVelocity\|setAwake\|setBullet\|setFixedRotation\|setGravityScale\|setInertia\|setLinearDamping\|setLinearVelocity\|setMass\|setMassData\|setPosition\|setSleepingAllowed\|setType\|setUserData\|setX\|setY\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getChildEdge\|getPoint\|getPoints\|getVertexCount\|setNextVertex\|setPreviousVertex\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getPoint\|getRadius\|setPoint\|setRadius\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getFixtures\|getFriction\|getNormal\|getPositions\|getRestitution\|isEnabled\|isTouching\|resetFriction\|resetRestitution\|setEnabled\|setFriction\|setRestitution\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getPoints\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getDampingRatio\|getFrequency\|getLength\|setDampingRatio\|setFrequency\|setLength\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(destroy\|getBody\|getBoundingBox\|getCategory\|getDensity\|getFilterData\|getFriction\|getGroupIndex\|getMask\|getMassData\|getRestitution\|getShape\|getUserData\|isDestroyed\|isSensor\|rayCast\|setCategory\|setDensity\|setFilterData\|setFriction\|setGroupIndex\|setMask\|setRestitution\|setSensor\|setUserData\|testPoint\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getMaxForce\|getMaxTorque\|setMaxForce\|setMaxTorque\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getJoints\|getRatio\|setRatio\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(destroy\|getAnchors\|getBodies\|getCollideConnected\|getReactionForce\|getReactionTorque\|getType\|getUserData\|isDestroyed\|setCollideConnected\|setUserData\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getDampingRatio\|getFrequency\|getMaxForce\|getTarget\|setDampingRatio\|setFrequency\|setMaxForce\|setTarget\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getPoints\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(setLimitsEnabled\|setMotorEnabled\|getJointSpeed\|getJointTranslation\|getLimits\|getLowerLimit\|getMaxMotorForce\|getMotorForce\|getMotorSpeed\|getUpperLimit\|hasLimitsEnabled\|isMotorEnabled\|setLimits\|setLowerLimit\|setMaxMotorForce\|setMotorSpeed\|setUpperLimit\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getConstant\|getGroundAnchors\|getLengthA\|getLengthB\|getMaxLengths\|getRatio\|setConstant\|setMaxLengths\|setRatio\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(setLimitsEnabled\|setMotorEnabled\|getJointAngle\|getJointSpeed\|getLimits\|getLowerLimit\|getMaxMotorTorque\|getMotorSpeed\|getMotorTorque\|getUpperLimit\|hasLimitsEnabled\|isMotorEnabled\|setLimits\|setLowerLimit\|setMaxMotorTorque\|setMotorSpeed\|setUpperLimit\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getMaxLength\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(computeAABB\|computeMass\|getChildCount\|getRadius\|getType\|rayCast\|testPoint\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getDampingRatio\|getFrequency\|setDampingRatio\|setFrequency\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getJointSpeed\|getJointTranslation\|getLimits\|getMaxMotorTorque\|getMotorSpeed\|getMotorTorque\|getSpringDampingRatio\|getSpringFrequency\|setMaxMotorTorque\|setMotorEnabled\|setMotorSpeed\|setSpringDampingRatio\|setSpringFrequency\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(destroy\|getBodyCount\|getBodyList\|getCallbacks\|getContactCount\|getContactFilter\|getContactList\|getGravity\|getJointCount\|getJointList\|isDestroyed\|isLocked\|isSleepingAllowed\|queryBoundingBox\|rayCast\|setCallbacks\|setContactFilter\|setGravity\|setSleepingAllowed\|translateOrigin\|update\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(physics\.\(getDistance\|getMeter\|newBody\|newChainShape\|newCircleShape\|newDistanceJoint\|newEdgeShape\|newFixture\|newFrictionJoint\|newGearJoint\|newMouseJoint\|newPolygonShape\|newPrismaticJoint\|newPulleyJoint\|newRectangleShape\|newRevoluteJoint\|newRopeJoint\|newWeldJoint\|newWheelJoint\|newWorld\|setMeter\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(sound\.\(newDecoder\|newSoundData\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getBitDepth\|getChannels\|getDuration\|getSampleRate\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(getBitDepth\|getChannels\|getDuration\|getSample\|getSampleCount\|getSampleRate\|setSample\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(system\.\(getClipboardText\|getOS\|getPowerInfo\|getProcessorCount\|openURL\|setClipboardText\|vibrate\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(thread\.\(getChannel\|newChannel\|newThread\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getError\|start\|wait\|isRunning\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovetype "[\:\.]\(clear\|demand\|getCount\|peek\|performAtomic\|pop\|push\|supply\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(timer\.\(getAverageDelta\|getDelta\|getFPS\|getTime\|sleep\|step\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(touch\.\(getPosition\|getPressure\|getTouches\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(video\.\(newVideoStream\)\)\_[^_a-zA-Z]"me=e-1 syntax match lovetype "[\:\.]\(getDimensions\|getFilter\|getHeight\|getSource\|getStream\|getWidth\|isPlaying\|pause\|play\|rewind\|seek\|setFilter\|setSource\|tell\)\_[^_a-zA-Z]"ms=s+1,me=e-1 syntax match lovefunction "\(^\|\s\)love\.\(window\.\(close\|fromPixels\|getDisplayName\|getFullscreen\|getFullscreenModes\|getIcon\|getMode\|getPixelScale\|getPosition\|getTitle\|hasFocus\|hasMouseFocus\|isCreated\|isDisplaySleepEnabled\|isVisible\|maximize\|minimize\|requestAttention\|setDisplaySleepEnabled\|setFullscreen\|setIcon\|setMode\|setPosition\|setTitle\|showMessageBox\|toPixels\)\)\_[^_a-zA-Z]"me=e-1 let b:current_syntax = "lua" highlight lovefunction guifg=#ff60e2 highlight lovetype guifg=#ff60e2