summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt8
-rw-r--r--README.md34
-rw-r--r--ZED_EDITOR_SETUP.md579
-rw-r--r--docs/API.md (renamed from API.md)0
-rw-r--r--docs/ASSET_LOADING.md (renamed from ASSET_LOADING.md)0
-rw-r--r--docs/BUILD_SCRIPTS.md (renamed from BUILD_SCRIPTS.md)30
-rw-r--r--docs/CUSTOMIZATION.md (renamed from CUSTOMIZATION.md)2
-rw-r--r--docs/DOCUMENTATION_INDEX.md (renamed from DOCUMENTATION_INDEX.md)16
-rw-r--r--docs/EMBEDDING.md (renamed from EMBEDDING.md)0
-rw-r--r--docs/SPLASH_SCREENS.md (renamed from SPLASH_SCREENS.md)8
-rw-r--r--docs/UPGRADE_SUMMARY.md (renamed from UPGRADE_SUMMARY.md)20
-rw-r--r--docs/ZED_EDITOR_SETUP.md434
-rw-r--r--scripts/build_dev.bat (renamed from build_dev.bat)0
-rw-r--r--scripts/build_dev.sh (renamed from build_dev.sh)0
-rw-r--r--scripts/build_release.bat (renamed from build_release.bat)0
-rw-r--r--scripts/build_release.sh (renamed from build_release.sh)0
-rw-r--r--scripts/embed_assets.py (renamed from embed_assets.py)0
-rw-r--r--scripts/embed_font.py (renamed from embed_font.py)0
-rw-r--r--scripts/embed_logo.py (renamed from embed_logo.py)0
-rw-r--r--scripts/embed_lua.py (renamed from embed_lua.py)0
-rw-r--r--tools/ReiLua_API.lua (renamed from ReiLua_API.lua)0
-rw-r--r--tools/apiScanner.lua (renamed from apiScanner.lua)0
-rw-r--r--tools/docgen.lua (renamed from docgen.lua)0
23 files changed, 493 insertions, 638 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 61d96d9..ad67d96 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,7 @@ set( LOGO_FILES
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_logo.h
- COMMAND python ${CMAKE_SOURCE_DIR}/embed_logo.py
+ COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_logo.py
${CMAKE_CURRENT_BINARY_DIR}/embedded_logo.h
${CMAKE_SOURCE_DIR}/logo/raylib_logo.png
${CMAKE_SOURCE_DIR}/logo/reilua_logo.png
@@ -50,7 +50,7 @@ set( FONT_FILE "${CMAKE_SOURCE_DIR}/fonts/Oleaguid.ttf" )
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_font.h
- COMMAND python ${CMAKE_SOURCE_DIR}/embed_font.py
+ COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_font.py
${CMAKE_CURRENT_BINARY_DIR}/embedded_font.h
${CMAKE_SOURCE_DIR}/fonts/Oleaguid.ttf
DEPENDS ${FONT_FILE}
@@ -73,7 +73,7 @@ if( EMBED_MAIN )
if( LUA_FILES )
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h
- COMMAND python ${CMAKE_SOURCE_DIR}/embed_lua.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h ${LUA_FILES}
+ COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_lua.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h ${LUA_FILES}
DEPENDS ${LUA_FILES}
COMMENT "Embedding Lua files into executable..."
)
@@ -90,7 +90,7 @@ if( EMBED_ASSETS )
if( ASSET_FILES )
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h
- COMMAND python ${CMAKE_SOURCE_DIR}/embed_assets.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h ${ASSET_FILES}
+ COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_assets.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h ${ASSET_FILES}
DEPENDS ${ASSET_FILES}
COMMENT "Embedding asset files into executable..."
)
diff --git a/README.md b/README.md
index e0abe52..e9ca0f8 100644
--- a/README.md
+++ b/README.md
@@ -297,11 +297,11 @@ One-command builds for development and release:
**Development Build (Fast Iteration):**
```bash
# Windows
-build_dev.bat
+scripts\build_dev.bat
# Linux/Unix
-chmod +x build_dev.sh
-./build_dev.sh
+chmod +x scripts/build_dev.sh
+scripts/build_dev.sh
```
- No embedding
- Fast build times
@@ -319,10 +319,10 @@ copy ..\your_game\assets\* assets\
cd ..
# Windows
-build_release.bat
+scripts\build_release.bat
# Linux/Unix
-./build_release.sh
+scripts/build_release.sh
```
- Embeds all Lua files
- Embeds all assets
@@ -389,10 +389,10 @@ The given file will be called with `dofile`.
Generate API.md and ReiLua_API.lua from the build folder:
```bash
-ReiLua -i ../docgen.lua
+ReiLua -i ../tools/docgen.lua
```
-**Tip:** Use ReiLua_API.lua in your project folder to provide annotations when using "Lua Language Server".
+**Tip:** Use tools/ReiLua_API.lua in your project folder to provide annotations when using "Lua Language Server".
## Building from Source
@@ -456,7 +456,7 @@ copy liblua.a path\to\ReiLua\lib\
**Quick Method (Recommended):**
```bash
cd ReiLua
-build_dev.bat
+scripts\build_dev.bat
```
**Manual Method:**
@@ -494,8 +494,8 @@ Move both `.a` files to the `ReiLua/lib` folder.
**Quick Method (Recommended):**
```bash
cd ReiLua
-chmod +x build_dev.sh
-./build_dev.sh
+chmod +x scripts/build_dev.sh
+scripts/build_dev.sh
```
**Manual Method:**
@@ -639,8 +639,8 @@ copy ..\MyGame\assets\* assets\
```bash
cd ..
-build_release.bat
-# Or: ./build_release.sh on Linux
+scripts\build_release.bat
+# Or: scripts/build_release.sh on Linux
```
### Step 4: Test
@@ -750,10 +750,10 @@ Create `.zed/settings.json` in your project root:
### Copy ReiLua API Definitions
-Copy `ReiLua_API.lua` to your project folder. This provides autocomplete and documentation for all ReiLua functions.
+Copy `tools/ReiLua_API.lua` to your project folder. This provides autocomplete and documentation for all ReiLua functions.
```bash
-copy path\to\ReiLua\ReiLua_API.lua your_game\
+copy path\to\ReiLua\tools\ReiLua_API.lua your_game\
```
### Keyboard Shortcuts
@@ -832,8 +832,8 @@ path\to\ReiLua.exe --log --no-logo
### Quick References
-- **API.md** - All ReiLua/Raylib functions
-- **ReiLua_API.lua** - Lua annotations for IDE autocomplete
+- **docs/API.md** - All ReiLua/Raylib functions
+- **tools/ReiLua_API.lua** - Lua annotations for IDE autocomplete
- **examples/** - Example games and demos
## Troubleshooting
@@ -868,7 +868,7 @@ path\to\ReiLua.exe --log --no-logo
**Build fails:**
- Check CMake and compiler are installed and in PATH
- Verify `libraylib.a` and `liblua.a` are in `lib/` folder
-- Try clean build: `build_dev.bat clean`
+- Try clean build: `scripts\build_dev.bat clean`
### Getting Help
diff --git a/ZED_EDITOR_SETUP.md b/ZED_EDITOR_SETUP.md
deleted file mode 100644
index 7373a4e..0000000
--- a/ZED_EDITOR_SETUP.md
+++ /dev/null
@@ -1,579 +0,0 @@
-# Setting Up Zed Editor for ReiLua Development
-
-Zed is a high-performance, modern code editor built for speed and collaboration. This guide shows you how to set up Zed for the best ReiLua game development experience.
-
-## Why Zed?
-
-- ⚡ **Fast**: Written in Rust, extremely responsive
-- 🧠 **Smart**: Built-in AI assistance (optional)
-- 🎨 **Beautiful**: Clean, modern interface
-- 🔧 **Powerful**: LSP support, multi-cursor editing, vim mode
-- 🆓 **Free**: Open source and free to use
-
-## Installation
-
-### Download Zed
-
-Visit https://zed.dev/ and download for your platform:
-
-- **Windows**: Download installer and run
-- **Mac**: Download .dmg and install
-- **Linux**:
- ```bash
- curl https://zed.dev/install.sh | sh
- ```
-
-### First Launch
-
-1. Launch Zed
-2. Choose your theme (light/dark)
-3. Select keybindings (VS Code, Sublime, or default)
-4. Optional: Sign in for collaboration features
-
-## Setting Up for ReiLua
-
-### 1. Install Lua Language Server
-
-The Lua Language Server provides autocomplete, error detection, and documentation.
-
-**Method 1: Automatic (Recommended)**
-1. Open Zed
-2. Open any `.lua` file
-3. Zed will prompt to install Lua support
-4. Click "Install"
-
-**Method 2: Manual**
-1. Press `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (Mac)
-2. Type "zed: install language server"
-3. Select "Lua"
-
-### 2. Create Workspace Configuration
-
-Create a `.zed` folder in your project root:
-
-```bash
-cd your_game_project
-mkdir .zed
-```
-
-### 3. Configure Lua Language Server
-
-Create `.zed/settings.json` with ReiLua-specific settings:
-
-```json
-{
- "lsp": {
- "lua-language-server": {
- "settings": {
- "Lua": {
- "runtime": {
- "version": "Lua 5.4",
- "path": [
- "?.lua",
- "?/init.lua"
- ]
- },
- "diagnostics": {
- "globals": [
- "RL"
- ],
- "disable": [
- "lowercase-global"
- ]
- },
- "workspace": {
- "library": [
- "ReiLua_API.lua"
- ],
- "checkThirdParty": false
- },
- "completion": {
- "callSnippet": "Both",
- "keywordSnippet": "Both"
- },
- "hint": {
- "enable": true,
- "setType": true
- }
- }
- }
- }
- },
- "languages": {
- "Lua": {
- "format_on_save": "on",
- "formatter": "language_server",
- "tab_size": 4,
- "hard_tabs": false
- }
- },
- "tab_size": 4,
- "soft_wrap": "editor_width",
- "theme": "One Dark",
- "buffer_font_size": 14,
- "ui_font_size": 14
-}
-```
-
-**What this does:**
-- Sets Lua 5.4 runtime (matches ReiLua)
-- Adds `RL` as a global (prevents "undefined global" warnings)
-- Loads ReiLua_API.lua for autocomplete
-- Enables format-on-save
-- Sets tab size to 4 spaces
-- Enables type hints
-- Disables third-party library checking (reduces noise)
-
-### 4. Add ReiLua API Definitions
-
-Copy `ReiLua_API.lua` to your project:
-
-```bash
-# Windows
-copy path\to\ReiLua\ReiLua_API.lua your_game_project\
-
-# Linux/Mac
-cp path/to/ReiLua/ReiLua_API.lua your_game_project/
-```
-
-This file provides:
-- Autocomplete for all 1000+ ReiLua functions
-- Function signatures
-- Parameter hints
-- Documentation tooltips
-
-### 5. Create Tasks Configuration
-
-Create `.zed/tasks.json` for quick commands:
-
-```json
-{
- "tasks": [
- {
- "label": "Run Game (Dev)",
- "command": "path/to/ReiLua.exe",
- "args": ["--log", "--no-logo"],
- "cwd": "${workspaceFolder}"
- },
- {
- "label": "Run Game (Production)",
- "command": "path/to/ReiLua.exe",
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "label": "Run Game with Logging",
- "command": "path/to/ReiLua.exe",
- "args": ["--log"],
- "cwd": "${workspaceFolder}"
- },
- {
- "label": "Build Release",
- "command": "path/to/ReiLua/build_release.bat",
- "cwd": "path/to/ReiLua"
- }
- ]
-}
-```
-
-**Usage:**
-1. Press `Ctrl+Shift+P` / `Cmd+Shift+P`
-2. Type "task: spawn"
-3. Select your task
-
-Replace `path/to/ReiLua.exe` with the actual path to your ReiLua executable.
-
-## Essential Keyboard Shortcuts
-
-### Navigation
-
-| Shortcut | Action | Description |
-|----------|--------|-------------|
-| `Ctrl+P` / `Cmd+P` | Quick Open | Jump to any file instantly |
-| `Ctrl+Shift+P` / `Cmd+Shift+P` | Command Palette | Access all commands |
-| `Ctrl+T` / `Cmd+T` | Go to Symbol | Jump to function/variable |
-| `F12` | Go to Definition | Jump to where something is defined |
-| `Shift+F12` | Find References | Find all uses of a symbol |
-| `Alt+←` / `Alt+→` | Navigate Back/Forward | Like browser navigation |
-| `Ctrl+G` / `Cmd+G` | Go to Line | Jump to specific line number |
-
-### Editing
-
-| Shortcut | Action | Description |
-|----------|--------|-------------|
-| `Ctrl+D` / `Cmd+D` | Add Selection | Select next occurrence |
-| `Alt+Click` | Add Cursor | Multiple cursors |
-| `Ctrl+Shift+L` / `Cmd+Shift+L` | Select All Occurrences | Multi-cursor all matches |
-| `Ctrl+/` / `Cmd+/` | Toggle Comment | Comment/uncomment line |
-| `Alt+↑` / `Alt+↓` | Move Line Up/Down | Move current line |
-| `Ctrl+Shift+D` / `Cmd+Shift+D` | Duplicate Line | Copy line below |
-| `Ctrl+Shift+K` / `Cmd+Shift+K` | Delete Line | Remove entire line |
-| `Ctrl+]` / `Cmd+]` | Indent | Indent selection |
-| `Ctrl+[` / `Cmd+[` | Outdent | Unindent selection |
-
-### Search
-
-| Shortcut | Action | Description |
-|----------|--------|-------------|
-| `Ctrl+F` / `Cmd+F` | Find | Search in current file |
-| `Ctrl+H` / `Cmd+H` | Replace | Find and replace |
-| `Ctrl+Shift+F` / `Cmd+Shift+F` | Find in Files | Search entire project |
-| `F3` / `Cmd+G` | Find Next | Next search result |
-| `Shift+F3` / `Cmd+Shift+G` | Find Previous | Previous search result |
-
-### View
-
-| Shortcut | Action | Description |
-|----------|--------|-------------|
-| `Ctrl+\` / `Cmd+\` | Split Editor | Side-by-side editing |
-| `` Ctrl+` `` / `` Cmd+` `` | Toggle Terminal | Show/hide terminal |
-| `Ctrl+B` / `Cmd+B` | Toggle Sidebar | Show/hide file tree |
-| `Ctrl+K Z` / `Cmd+K Z` | Zen Mode | Distraction-free mode |
-| `Ctrl+K V` / `Cmd+K V` | Toggle Preview | For markdown files |
-
-### Code
-
-| Shortcut | Action | Description |
-|----------|--------|-------------|
-| `Ctrl+Space` | Trigger Autocomplete | Force show suggestions |
-| `Ctrl+.` / `Cmd+.` | Code Actions | Quick fixes |
-| `F2` | Rename Symbol | Rename variable/function |
-| `Ctrl+K Ctrl+F` / `Cmd+K Cmd+F` | Format Selection | Format selected code |
-
-## Project Structure Best Practices
-
-### Recommended Layout
-
-```
-your_game/
-├── .zed/
-│ ├── settings.json
-│ └── tasks.json
-├── assets/
-│ ├── images/
-│ ├── sounds/
-│ └── fonts/
-├── lib/
-│ └── (your libraries)
-├── src/
-│ ├── main.lua
-│ ├── player.lua
-│ ├── enemy.lua
-│ └── game.lua
-├── ReiLua_API.lua
-└── README.md
-```
-
-### Using Multiple Folders
-
-Add ReiLua source for reference:
-
-1. File → Add Folder to Workspace
-2. Select ReiLua source directory
-3. Now you can reference ReiLua code easily
-
-## Advanced Features
-
-### Multi-Cursor Editing
-
-**Use cases:**
-- Rename variables in multiple places
-- Edit similar lines simultaneously
-- Batch formatting
-
-**Example:**
-1. Select a variable name
-2. Press `Ctrl+D` repeatedly to select more occurrences
-3. Type to edit all at once
-
-### Split Editor
-
-Work on multiple files simultaneously:
-
-1. Press `Ctrl+\` to split
-2. Open different files in each pane
-3. Example: `main.lua` on left, `player.lua` on right
-
-### Vim Mode (Optional)
-
-If you love Vim:
-
-1. `Ctrl+Shift+P` → "zed: toggle vim mode"
-2. All Vim keybindings become available
-3. Normal, Insert, Visual modes work
-4. `:w` to save, `:q` to close, etc.
-
-### Live Grep
-
-Powerful project-wide search:
-
-1. Press `Ctrl+Shift+F`
-2. Type your search query
-3. Results show in context
-4. Click to jump to location
-
-**Search tips:**
-- Use regex with `.*` for patterns
-- Search by file type: `*.lua`
-- Exclude folders: Add to `.gitignore`
-
-### Collaboration (Optional)
-
-Share your coding session:
-
-1. Click "Share" button (top right)
-2. Send link to teammate
-3. Collaborate in real-time
-4. See each other's cursors
-
-## Workflow Tips
-
-### 1. Quick File Switching
-
-```
-Ctrl+P → type filename → Enter
-```
-
-Example: `Ctrl+P` → "play" → selects `player.lua`
-
-### 2. Symbol Search
-
-```
-Ctrl+T → type function name → Enter
-```
-
-Example: `Ctrl+T` → "update" → jumps to `function RL.update()`
-
-### 3. Multi-File Editing
-
-1. `Ctrl+Shift+F` → Search for text
-2. Results show all occurrences
-3. Use multi-cursor to edit across files
-
-### 4. Integrated Terminal
-
-Keep terminal open while coding:
-
-1. `` Ctrl+` `` → Open terminal
-2. Split view: code above, terminal below
-3. Run `ReiLua.exe --log --no-logo` for testing
-
-### 5. Quick Testing Loop
-
-Set up this workflow:
-1. Edit code in Zed
-2. Save with `Ctrl+S` (autosave optional)
-3. Switch to terminal with `` Ctrl+` ``
-4. Press `↑` to recall previous command
-5. Press `Enter` to run game
-
-## Troubleshooting
-
-### Lua Language Server Not Working
-
-**Problem**: No autocomplete or diagnostics
-
-**Solutions:**
-1. Check LSP status: `Ctrl+Shift+P` → "lsp: show active servers"
-2. Restart LSP: `Ctrl+Shift+P` → "lsp: restart"
-3. Check `.zed/settings.json` syntax
-4. Verify `ReiLua_API.lua` exists in project
-
-### ReiLua Functions Show as Undefined
-
-**Problem**: `RL.DrawText` shows as error
-
-**Solutions:**
-1. Add `"RL"` to globals in `.zed/settings.json`:
- ```json
- "diagnostics": {
- "globals": ["RL"]
- }
- ```
-2. Restart LSP
-
-### Format on Save Not Working
-
-**Problem**: Code doesn't format when saving
-
-**Solutions:**
-1. Check formatter setting:
- ```json
- "languages": {
- "Lua": {
- "format_on_save": "on"
- }
- }
- ```
-2. Ensure LSP is running
-3. Try manual format: `Ctrl+Shift+F`
-
-### Tasks Not Showing
-
-**Problem**: Can't find run tasks
-
-**Solutions:**
-1. Verify `.zed/tasks.json` exists
-2. Check JSON syntax
-3. Reload window: `Ctrl+Shift+P` → "zed: reload"
-
-## Themes and Appearance
-
-### Change Theme
-
-1. `Ctrl+Shift+P` → "theme selector: toggle"
-2. Browse themes
-3. Select one
-
-**Recommended for coding:**
-- One Dark (dark)
-- One Light (light)
-- Andromeda (dark)
-- GitHub Light (light)
-
-### Adjust Font Size
-
-**Method 1: Settings**
-Edit `.zed/settings.json`:
-```json
-{
- "buffer_font_size": 14,
- "ui_font_size": 14
-}
-```
-
-**Method 2: Quick Zoom**
-- `Ctrl+=` / `Cmd+=` → Increase font
-- `Ctrl+-` / `Cmd+-` → Decrease font
-- `Ctrl+0` / `Cmd+0` → Reset font
-
-### Custom Font
-
-```json
-{
- "buffer_font_family": "JetBrains Mono",
- "buffer_font_size": 14
-}
-```
-
-**Recommended coding fonts:**
-- JetBrains Mono
-- Fira Code
-- Cascadia Code
-- Source Code Pro
-
-## Extensions and Enhancements
-
-### Install Extensions
-
-1. `Ctrl+Shift+X` / `Cmd+Shift+X`
-2. Search for extensions
-3. Click install
-
-### Recommended for Lua Development
-
-**Core:**
-- ✅ Lua Language Server (built-in)
-
-**Productivity:**
-- Better Comments - Enhanced comment highlighting
-- Error Lens - Inline error display
-- Bracket Pair Colorizer - Match brackets with colors
-
-**Optional:**
-- GitHub Copilot - AI code suggestions (requires subscription)
-- GitLens - Advanced git integration
-
-## Sample Workspace
-
-Here's a complete example setup:
-
-### Directory Structure
-```
-MyGame/
-├── .zed/
-│ ├── settings.json
-│ └── tasks.json
-├── src/
-│ ├── main.lua
-│ ├── player.lua
-│ └── enemy.lua
-├── assets/
-│ ├── player.png
-│ └── music.wav
-├── ReiLua_API.lua
-└── README.md
-```
-
-### .zed/settings.json
-```json
-{
- "lsp": {
- "lua-language-server": {
- "settings": {
- "Lua": {
- "runtime": {"version": "Lua 5.4"},
- "diagnostics": {"globals": ["RL"]},
- "workspace": {"library": ["ReiLua_API.lua"]}
- }
- }
- }
- },
- "languages": {
- "Lua": {
- "format_on_save": "on",
- "tab_size": 4
- }
- },
- "theme": "One Dark",
- "buffer_font_size": 14
-}
-```
-
-### .zed/tasks.json
-```json
-{
- "tasks": [
- {
- "label": "Run Game",
- "command": "C:/ReiLua/build/ReiLua.exe",
- "args": ["--log", "--no-logo"]
- }
- ]
-}
-```
-
-Now you can:
-- Open project in Zed
-- Get autocomplete for all RL functions
-- Press `Ctrl+Shift+P` → "Run Game" to test
-- Edit code with full LSP support
-
-## Tips for Efficient Development
-
-1. **Learn 5 shortcuts**: `Ctrl+P`, `Ctrl+Shift+F`, `Ctrl+D`, `F12`, `` Ctrl+` ``
-2. **Use multi-cursor**: Speed up repetitive edits
-3. **Split editor**: Work on related files side-by-side
-4. **Keep terminal open**: Quick testing without leaving Zed
-5. **Use Zen mode**: Focus during complex coding
-6. **Enable autosave**: Never lose work
-
-## Next Steps
-
-✅ Install Zed
-✅ Configure for Lua 5.4
-✅ Add ReiLua_API.lua to project
-✅ Set up tasks for quick testing
-✅ Learn essential shortcuts
-✅ Start coding your game!
-
-## Additional Resources
-
-- **Zed Documentation**: https://zed.dev/docs
-- **Zed GitHub**: https://github.com/zed-industries/zed
-- **Community**: https://zed.dev/community
-- **Keyboard Shortcuts**: View in Zed with `Ctrl+K Ctrl+S`
-
----
-
-Happy coding with Zed and ReiLua! 🚀
diff --git a/API.md b/docs/API.md
index 5359d3f..5359d3f 100644
--- a/API.md
+++ b/docs/API.md
diff --git a/ASSET_LOADING.md b/docs/ASSET_LOADING.md
index a38a264..a38a264 100644
--- a/ASSET_LOADING.md
+++ b/docs/ASSET_LOADING.md
diff --git a/BUILD_SCRIPTS.md b/docs/BUILD_SCRIPTS.md
index 013f5a5..875ef0b 100644
--- a/BUILD_SCRIPTS.md
+++ b/docs/BUILD_SCRIPTS.md
@@ -5,12 +5,12 @@ ReiLua includes automated build scripts for easy development and release builds.
## Available Scripts
### Development Build Scripts
-- **Windows**: `build_dev.bat`
-- **Linux/Unix**: `build_dev.sh`
+- **Windows**: `scripts\build_dev.bat`
+- **Linux/Unix**: `scripts/build_dev.sh`
### Release Build Scripts
-- **Windows**: `build_release.bat`
-- **Linux/Unix**: `build_release.sh`
+- **Windows**: `scripts\build_release.bat`
+- **Linux/Unix**: `scripts/build_release.sh`
## Development Build
@@ -21,13 +21,13 @@ Fast iteration during game development with external Lua files and assets.
**Windows:**
```cmd
-build_dev.bat
+scripts\build_dev.bat
```
**Linux/Unix:**
```bash
-chmod +x build_dev.sh
-./build_dev.sh
+chmod +x scripts/build_dev.sh
+scripts/build_dev.sh
```
### Features
@@ -36,7 +36,7 @@ chmod +x build_dev.sh
- ✅ Edit code and assets without rebuilding
- ✅ Automatic cleanup of embedded files
- ✅ Warns if Lua files or assets are in build directory
-- ✅ Optional clean build: `build_dev.bat clean` or `./build_dev.sh clean`
+- ✅ Optional clean build: `scripts\build_dev.bat clean` or `scripts/build_dev.sh clean`
### Output
- Development executable: `build/ReiLua.exe`
@@ -69,13 +69,13 @@ copy ..\your_game\assets\* assets\
**Windows:**
```cmd
-build_release.bat
+scripts\build_release.bat
```
**Linux/Unix:**
```bash
-chmod +x build_release.sh
-./build_release.sh
+chmod +x scripts/build_release.sh
+scripts/build_release.sh
```
### Features
@@ -133,7 +133,7 @@ After building, the executable will be named `YourGameName.exe`.
```bash
# Initial setup
-build_dev.bat
+scripts\build_dev.bat
# Edit your Lua files in your game directory
# ... make changes ...
@@ -143,7 +143,7 @@ cd your_game
path\to\build\ReiLua.exe
# If you modify C code, rebuild
-build_dev.bat
+scripts\build_dev.bat
```
### Release Workflow
@@ -157,7 +157,7 @@ copy ..\your_game\assets\* assets\
# 2. Build release
cd ..
-build_release.bat
+scripts\build_release.bat
# 3. Test
cd build
@@ -181,7 +181,7 @@ ReiLua.exe --log
### "Build failed"
- Check compiler errors in output
- Ensure all dependencies are installed
-- Try clean build: `build_dev.bat clean`
+- Try clean build: `scripts\build_dev.bat clean`
### Development build embedding warning
- The dev build script warns if it finds Lua files or assets in build/
diff --git a/CUSTOMIZATION.md b/docs/CUSTOMIZATION.md
index ab74a33..388a894 100644
--- a/CUSTOMIZATION.md
+++ b/docs/CUSTOMIZATION.md
@@ -371,7 +371,7 @@ Before releasing your game:
**Splash screens don't show changes:**
- Rebuild with clean build
-- Check `embed_logo.py` ran successfully
+- Check `scripts/embed_logo.py` ran successfully
- Verify logo files exist in `logo/` folder
**Executable name unchanged:**
diff --git a/DOCUMENTATION_INDEX.md b/docs/DOCUMENTATION_INDEX.md
index b927a29..fee3521 100644
--- a/DOCUMENTATION_INDEX.md
+++ b/docs/DOCUMENTATION_INDEX.md
@@ -53,8 +53,8 @@ Asset loading system documentation:
### 🔧 [BUILD_SCRIPTS.md](BUILD_SCRIPTS.md)
Build automation documentation:
-- `build_dev.bat` / `build_dev.sh` - Development builds
-- `build_release.bat` / `build_release.sh` - Release builds
+- `scripts\build_dev.bat` / `scripts/build_dev.sh` - Development builds
+- `scripts\build_release.bat` / `scripts/build_release.sh` - Release builds
- Features of each build type
- Workflow examples
- Customizing executable name, icon, and properties
@@ -93,7 +93,7 @@ Complete API reference:
- Function signatures
- Raygui, Raymath, Lights, Easings, RLGL modules
-### 📝 [ReiLua_API.lua](ReiLua_API.lua)
+### 📝 [tools/ReiLua_API.lua](tools/ReiLua_API.lua)
Lua annotations file:
- Provides autocomplete in LSP-enabled editors
- Function documentation
@@ -118,7 +118,7 @@ Technical implementation details:
### "I want to embed my game into a single .exe"
1. Read [EMBEDDING.md](EMBEDDING.md)
-2. Use `build_release.bat` / `build_release.sh`
+2. Use `scripts\build_release.bat` / `scripts/build_release.sh`
3. Follow the complete release workflow in [README.md](README.md)
### "I want to add a loading screen"
@@ -143,21 +143,21 @@ Technical implementation details:
### "I want to setup my code editor"
1. Read [ZED_EDITOR_SETUP.md](ZED_EDITOR_SETUP.md)
2. Install Zed and Lua Language Server
-3. Copy `ReiLua_API.lua` to your project
+3. Copy `tools/ReiLua_API.lua` to your project
4. Create `.zed/settings.json` configuration
5. Set up tasks for quick testing
### "I want to build ReiLua from source"
1. Read [README.md](README.md) - Building from Source section
2. Install prerequisites (CMake, compiler, Raylib, Lua)
-3. Use `build_dev.bat` for development
-4. Use `build_release.bat` for release
+3. Use `scripts\build_dev.bat` for development
+4. Use `scripts\build_release.bat` for release
### "I need API reference"
1. Open [API.md](API.md)
2. Search for function name
3. See function signature and description
-4. Or copy [ReiLua_API.lua](ReiLua_API.lua) for autocomplete
+4. Or copy [tools/ReiLua_API.lua](tools/ReiLua_API.lua) for autocomplete
---
diff --git a/EMBEDDING.md b/docs/EMBEDDING.md
index 13f3752..13f3752 100644
--- a/EMBEDDING.md
+++ b/docs/EMBEDDING.md
diff --git a/SPLASH_SCREENS.md b/docs/SPLASH_SCREENS.md
index eb28565..840a0d2 100644
--- a/SPLASH_SCREENS.md
+++ b/docs/SPLASH_SCREENS.md
@@ -62,7 +62,7 @@ ReiLua.exe --log --no-logo
The splash screen system is implemented in C and runs before any Lua code executes:
-1. **Logo Embedding**: During build, `embed_logo.py` converts PNG files to C byte arrays
+1. **Logo Embedding**: During build, `scripts/embed_logo.py` converts PNG files to C byte arrays
2. **Initialization**: Before calling `RL.init()`, the engine initializes splash screens
3. **Display Loop**: A dedicated loop handles timing, fading, and rendering
4. **Cleanup**: After completion, resources are freed and Lua code begins
@@ -71,7 +71,7 @@ The splash screen system is implemented in C and runs before any Lua code execut
- `src/splash.c` - Splash screen implementation
- `include/splash.h` - Header file
-- `embed_logo.py` - Python script to embed logo images
+- `scripts/embed_logo.py` - Python script to embed logo images
- `logo/raylib_logo.png` - Raylib logo (embedded)
- `logo/reilua_logo.png` - ReiLua logo (embedded)
@@ -79,7 +79,7 @@ The splash screen system is implemented in C and runs before any Lua code execut
The CMakeLists.txt automatically:
-1. Runs `embed_logo.py` during build
+1. Runs `scripts/embed_logo.py` during build
2. Generates `embedded_logo.h` with logo data
3. Defines `EMBED_LOGO` flag
4. Compiles `splash.c` with the project
@@ -205,7 +205,7 @@ ReiLua.exe MyGame/
**Solutions**:
- Ensure Python 3 is installed and in PATH
-- Check `embed_logo.py` has correct paths
+- Check `scripts/embed_logo.py` has correct paths
- Verify `logo/` folder exists with both PNG files
- Check CMake output for specific error messages
diff --git a/UPGRADE_SUMMARY.md b/docs/UPGRADE_SUMMARY.md
index 5cdfe8f..35eb38b 100644
--- a/UPGRADE_SUMMARY.md
+++ b/docs/UPGRADE_SUMMARY.md
@@ -51,10 +51,10 @@ Successfully ported embedded assets, splash screens, and asset loading features
### New Files
- **Python Scripts:**
- - `embed_lua.py` - Embeds Lua files into C header
- - `embed_assets.py` - Embeds asset files into C header
- - `embed_logo.py` - Embeds splash screen logos
- - `embed_font.py` - Embeds custom font
+ - `scripts/embed_lua.py` - Embeds Lua files into C header
+ - `scripts/embed_assets.py` - Embeds asset files into C header
+ - `scripts/embed_logo.py` - Embeds splash screen logos
+ - `scripts/embed_font.py` - Embeds custom font
- **Source Files:**
- `src/splash.c` - Splash screen implementation
@@ -72,8 +72,8 @@ Successfully ported embedded assets, splash screens, and asset loading features
- `BUILD_SCRIPTS.md` - Build scripts documentation
- **Build Scripts:**
- - `build_dev.bat` / `build_dev.sh` - One-command development builds
- - `build_release.bat` / `build_release.sh` - One-command release builds with embedding
+ - `scripts\build_dev.bat` / `scripts/build_dev.sh` - One-command development builds
+ - `scripts\build_release.bat` / `scripts/build_release.sh` - One-command release builds with embedding
- **Icon and Resources:**
- `icon.ico` - Default Windows executable icon
@@ -94,10 +94,10 @@ Successfully ported embedded assets, splash screens, and asset loading features
**Development (Fast Iteration):**
```bash
# Windows
-build_dev.bat
+scripts\build_dev.bat
# Linux/Unix
-./build_dev.sh
+scripts/build_dev.sh
```
**Release (Single Executable):**
@@ -112,10 +112,10 @@ copy ..\assets\* assets\
cd ..
# Windows
-build_release.bat
+scripts\build_release.bat
# Linux/Unix
-./build_release.sh
+scripts/build_release.sh
```
### Manual Build
diff --git a/docs/ZED_EDITOR_SETUP.md b/docs/ZED_EDITOR_SETUP.md
new file mode 100644
index 0000000..6f72482
--- /dev/null
+++ b/docs/ZED_EDITOR_SETUP.md
@@ -0,0 +1,434 @@
+# Zed Editor Setup for ReiLua
+
+This guide explains how to set up autocomplete, type hints, and documentation for ReiLua in Zed Editor.
+
+---
+
+## Method 1: Using Lua Language Server (Recommended)
+
+Zed uses the **Lua Language Server (LuaLS)** for Lua support. ReiLua includes `tools/ReiLua_API.lua` with LuaLS annotations.
+
+### Setup Steps
+
+#### 1. Install Lua Language Server in Zed
+
+Zed should automatically install LuaLS when you open a Lua file. If not:
+
+1. Open Zed
+2. Go to **Extensions** (Cmd/Ctrl + Shift + X)
+3. Search for "Lua"
+4. Install the Lua extension
+
+#### 2. Configure Your Project
+
+Create a `.luarc.json` file in your project root:
+
+```json
+{
+ "runtime.version": "Lua 5.4",
+ "workspace.library": [
+ "${3rd}/luassert/library",
+ "${3rd}/busted/library"
+ ],
+ "completion.enable": true,
+ "diagnostics.globals": [
+ "RL"
+ ],
+ "workspace.checkThirdParty": false
+}
+```
+
+#### 3. Copy tools/ReiLua_API.lua to Your Project
+
+Copy `tools/ReiLua_API.lua` to your game project folder:
+
+```bash
+# From ReiLua directory
+cp tools/ReiLua_API.lua /path/to/your/game/project/
+```
+
+Or on Windows:
+```powershell
+Copy-Item tools/ReiLua_API.lua "C:\path\to\your\game\project\"
+```
+
+#### 4. (Optional) Create Library Directory
+
+For better organization, create a library directory:
+
+```
+your-game/
+├── main.lua
+├── .luarc.json
+└── .lua/
+ └── tools/ReiLua_API.lua
+```
+
+Update `.luarc.json`:
+```json
+{
+ "runtime.version": "Lua 5.4",
+ "workspace.library": [".lua"],
+ "completion.enable": true,
+ "diagnostics.globals": ["RL"],
+ "workspace.checkThirdParty": false
+}
+```
+
+---
+
+## Method 2: Global Configuration (All Projects)
+
+To make ReiLua API available for all projects:
+
+### Windows
+
+1. Create directory: `%USERPROFILE%\.luarocks\lib\lua\5.4\`
+2. Copy `tools/ReiLua_API.lua` to this directory
+3. Add to global LuaLS config:
+
+**Location:** `%APPDATA%\Zed\settings.json` or via Zed settings
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.workspace.library": [
+ "C:\\Users\\YourName\\.luarocks\\lib\\lua\\5.4"
+ ],
+ "Lua.diagnostics.globals": ["RL"]
+ }
+ }
+ }
+}
+```
+
+### Linux/macOS
+
+1. Create directory: `~/.lua/reilua/`
+2. Copy `tools/ReiLua_API.lua` to this directory
+3. Update Zed settings:
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.workspace.library": [
+ "~/.lua/reilua"
+ ],
+ "Lua.diagnostics.globals": ["RL"]
+ }
+ }
+ }
+}
+```
+
+---
+
+## Method 3: Using Zed's LSP Configuration
+
+Create a `.zed/settings.json` in your project:
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.runtime.version": "Lua 5.4",
+ "Lua.workspace.library": [
+ "."
+ ],
+ "Lua.completion.enable": true,
+ "Lua.completion.callSnippet": "Replace",
+ "Lua.completion.displayContext": 3,
+ "Lua.diagnostics.globals": [
+ "RL"
+ ],
+ "Lua.hint.enable": true,
+ "Lua.hint.paramName": "All",
+ "Lua.hint.setType": true
+ }
+ }
+ }
+}
+```
+
+---
+
+## Verifying Setup
+
+Create a test file `test.lua`:
+
+```lua
+function RL.init()
+ -- Type "RL." and you should see autocomplete
+ RL.SetWindowTitle("Test") -- Should show documentation
+
+ local color = RL.RED -- Should autocomplete color constants
+
+ -- Hover over functions to see documentation
+ RL.DrawText("Hello", 10, 10, 20, color)
+end
+
+function RL.update(delta)
+ -- 'delta' should show as number type
+end
+```
+
+If autocomplete works, you should see:
+- ✅ Function suggestions when typing `RL.`
+- ✅ Parameter hints when calling functions
+- ✅ Documentation on hover
+- ✅ Constant values (RL.RED, RL.KEY_SPACE, etc.)
+
+---
+
+## Enhanced Features
+
+### Enable Inlay Hints
+
+In Zed settings:
+
+```json
+{
+ "inlay_hints": {
+ "enabled": true
+ },
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.hint.enable": true,
+ "Lua.hint.paramName": "All",
+ "Lua.hint.setType": true,
+ "Lua.hint.paramType": true
+ }
+ }
+ }
+}
+```
+
+This will show:
+- Parameter names inline
+- Variable types
+- Return types
+
+### Disable Annoying Warnings
+
+Add these to suppress common false positives:
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.diagnostics.disable": [
+ "lowercase-global",
+ "unused-local",
+ "duplicate-set-field",
+ "missing-fields",
+ "undefined-field"
+ ],
+ "Lua.diagnostics.globals": ["RL"]
+ }
+ }
+ }
+}
+```
+
+**Common warnings and what they mean:**
+- `lowercase-global` - Using global variables with lowercase names (RL is intentional)
+- `unused-local` - Local variables that aren't used
+- `duplicate-set-field` - Redefining functions (callback functions are expected to be redefined)
+- `missing-fields` - Table fields that might not exist
+- `undefined-field` - Accessing fields that aren't documented
+
+> **Note:** The `tools/ReiLua_API.lua` file now uses type annotations instead of function definitions for callbacks to prevent duplicate warnings.
+
+---
+
+## Troubleshooting
+
+### "duplicate-set-field" Error
+
+**Problem:** Getting warnings like `Duplicate field 'init'. (Lua Diagnostics. duplicate-set-field)`
+
+**Why:** The `tools/ReiLua_API.lua` file previously defined callback functions as empty function definitions. When you define them in your `main.lua`, LSP sees it as redefining the same field.
+
+**Solution:** The latest `tools/ReiLua_API.lua` now uses type annotations instead:
+
+```lua
+-- Old way (caused warnings)
+function RL.init() end
+
+-- New way (no warnings)
+---@type fun()
+RL.init = nil
+```
+
+**Fix Steps:**
+1. **Update `tools/ReiLua_API.lua`** - Copy the latest version from the repository
+2. **Or add to diagnostics.disable** in your configuration:
+ ```json
+ {
+ "diagnostics.disable": ["duplicate-set-field"]
+ }
+ ```
+3. **Restart Zed** to reload the configuration
+
+**Benefits of the new approach:**
+- ✅ No duplicate warnings
+- ✅ Still get autocomplete
+- ✅ Still get documentation on hover
+- ✅ Still get type checking
+
+---
+
+### Autocomplete Not Working
+
+1. **Restart Zed** after configuration changes
+2. **Check LSP Status**: Look for Lua Language Server in bottom-right status bar
+3. **Verify File Location**: Ensure `tools/ReiLua_API.lua` is in the workspace
+4. **Check Console**: Open Zed's log to see LSP errors
+
+### Performance Issues
+
+If the language server is slow:
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.workspace.maxPreload": 2000,
+ "Lua.workspace.preloadFileSize": 1000
+ }
+ }
+ }
+}
+```
+
+### Missing Documentation
+
+Ensure hover is enabled:
+
+```json
+{
+ "hover_popover_enabled": true
+}
+```
+
+---
+
+## Advanced: Custom Annotations
+
+You can extend `tools/ReiLua_API.lua` with your own game types:
+
+```lua
+---@class Player
+---@field x number
+---@field y number
+---@field health number
+
+---@class Enemy
+---@field x number
+---@field y number
+---@field damage number
+
+-- Your game globals
+---@type Player
+player = {}
+
+---@type Enemy[]
+enemies = {}
+```
+
+---
+
+## Keyboard Shortcuts in Zed
+
+- **Trigger Autocomplete**: `Ctrl+Space` (Windows/Linux) or `Cmd+Space` (macOS)
+- **Show Documentation**: Hover or `Ctrl+K Ctrl+I`
+- **Go to Definition**: `F12` or `Cmd+Click`
+- **Find References**: `Shift+F12`
+- **Rename Symbol**: `F2`
+
+---
+
+## Additional Resources
+
+- [Lua Language Server GitHub](https://github.com/LuaLS/lua-language-server)
+- [LuaLS Annotations Guide](https://github.com/LuaLS/lua-language-server/wiki/Annotations)
+- [Zed Documentation](https://zed.dev/docs)
+
+---
+
+## Example Project Structure
+
+```
+my-reilua-game/
+├── .luarc.json # LuaLS configuration
+├── .zed/
+│ └── settings.json # Zed-specific settings
+├── tools/ReiLua_API.lua # API definitions (copy from ReiLua)
+├── main.lua # Your game entry point
+├── player.lua
+├── enemy.lua
+└── assets/
+ ├── sprites/
+ └── sounds/
+```
+
+---
+
+## Quick Start Template
+
+Save this as `.luarc.json` in your project:
+
+```json
+{
+ "runtime.version": "Lua 5.4",
+ "completion.enable": true,
+ "completion.callSnippet": "Replace",
+ "diagnostics.globals": ["RL"],
+ "diagnostics.disable": [
+ "lowercase-global",
+ "duplicate-set-field",
+ "missing-fields"
+ ],
+ "workspace.checkThirdParty": false,
+ "workspace.library": ["."],
+ "hint.enable": true
+}
+```
+
+Save this as `.zed/settings.json`:
+
+```json
+{
+ "lsp": {
+ "lua-language-server": {
+ "settings": {
+ "Lua.hint.enable": true,
+ "Lua.hint.paramName": "All",
+ "Lua.hint.setType": true,
+ "Lua.diagnostics.disable": [
+ "lowercase-global",
+ "duplicate-set-field",
+ "missing-fields"
+ ]
+ }
+ }
+ },
+ "inlay_hints": {
+ "enabled": true
+ }
+}
+```
+
+Then copy `tools/ReiLua_API.lua` to your project root, and you're ready to go!
+
+---
+
+**Happy Coding! 🚀**
diff --git a/build_dev.bat b/scripts/build_dev.bat
index c1d79d2..c1d79d2 100644
--- a/build_dev.bat
+++ b/scripts/build_dev.bat
diff --git a/build_dev.sh b/scripts/build_dev.sh
index 4383d36..4383d36 100644
--- a/build_dev.sh
+++ b/scripts/build_dev.sh
diff --git a/build_release.bat b/scripts/build_release.bat
index 17b76c1..17b76c1 100644
--- a/build_release.bat
+++ b/scripts/build_release.bat
diff --git a/build_release.sh b/scripts/build_release.sh
index 758ce34..758ce34 100644
--- a/build_release.sh
+++ b/scripts/build_release.sh
diff --git a/embed_assets.py b/scripts/embed_assets.py
index 52309ef..52309ef 100644
--- a/embed_assets.py
+++ b/scripts/embed_assets.py
diff --git a/embed_font.py b/scripts/embed_font.py
index 8144718..8144718 100644
--- a/embed_font.py
+++ b/scripts/embed_font.py
diff --git a/embed_logo.py b/scripts/embed_logo.py
index e6b645e..e6b645e 100644
--- a/embed_logo.py
+++ b/scripts/embed_logo.py
diff --git a/embed_lua.py b/scripts/embed_lua.py
index 9562354..9562354 100644
--- a/embed_lua.py
+++ b/scripts/embed_lua.py
diff --git a/ReiLua_API.lua b/tools/ReiLua_API.lua
index 1ba8b71..1ba8b71 100644
--- a/ReiLua_API.lua
+++ b/tools/ReiLua_API.lua
diff --git a/apiScanner.lua b/tools/apiScanner.lua
index 88a27cf..88a27cf 100644
--- a/apiScanner.lua
+++ b/tools/apiScanner.lua
diff --git a/docgen.lua b/tools/docgen.lua
index 6b01765..6b01765 100644
--- a/docgen.lua
+++ b/tools/docgen.lua