@adiffx
VS Code extensions for game developers

Ren'Py Language Support

A Visual Studio Code extension that adds rich language support for the Ren’Py visual novel engine.

I originally made this for myself after running into a few small annoyances with existing extensions — mainly wanting to jump to symbols with Cmd+R, check whether an image reference actually exists, and jump to image definitions with F12.

I kept adding things as I needed them while working on projects, and over time it just grew into something more complete. It’s still very much shaped by what I personally find useful, but it might be helpful to others too. It's powered by a proper language server (LSP), which makes features like navigation, diagnostics, and completions more consistent and reliable.

✨ Features

🎨 Syntax Highlighting

📖 Hover Documentation

Category Entries Examples
config.* 286 config.name, config.screen_width
gui.* 107 gui.text_color, gui.show_name
build.* 18 build.name, build.directory_name
Actions 47 Jump, Call, Show, Hide
Style properties 129 background, padding, color
Transform properties 52 xpos, ypos, zoom, alpha

Also includes:

🔎 Navigation & Code Intelligence

Go to Symbol (Cmd+Shift+O / Ctrl+Shift+O)

Jump to:

Workspace Symbol Search (Cmd+T / Ctrl+T)

Search across all .rpy files:

Go to Definition (F12)

Navigate directly to definitions of:

✔ Handles Ren’Py’s flexible image naming (space-separated names)

🔁 Refactoring Tools

Find All References (Shift+F12)

Rename Symbol (F2)

⚡ Intelligent Completions

Context-aware suggestions for:

Namespace support

Smart behaviour

✍️ Signature Help

Inline parameter hints for 60+ functions, including:

⚠️ Diagnostics

Real-time feedback with:

Warnings

Errors

Built-in awareness

✔ Ignores comments and multiline strings correctly

🚀 Installation

From Source (Development)

git clone <repo-url>
cd <repo-folder>
npm install
npm run compile

Then press F5 in VS Code to launch the Extension Development Host.

🧪 Usage

  1. Open a folder containing .rpy files
  2. Open any Ren’Py file
  3. The extension activates automatically

⚠️ If you have another Ren’Py extension installed, disable it to avoid conflicts

🛠 Development

Running Tests

npm test

Tests include:

Updating API Data

npm run fetch-api
npm run compile

This pulls documentation from Ren’Py source and RST files, generating:

src/server/renpy-api.json

⚠️ Known Limitations

📋 Requirements

📄 License

MIT