summaryrefslogtreecommitdiff
path: root/docs/ZED_EDITOR_SETUP.md
diff options
context:
space:
mode:
authorIndrajith K L2025-11-07 04:55:35 +0530
committerIndrajith K L2025-11-07 04:55:35 +0530
commit3090134068e99e73ca57e8c0b62534c9bc99e93b (patch)
treeb52d4c0531ea9dd003a939b0cfe384b09dc5dbbf /docs/ZED_EDITOR_SETUP.md
parent839b3793a5ec4af58d4dabae85e8f8a211ace258 (diff)
downloadreilua-enhanced-3090134068e99e73ca57e8c0b62534c9bc99e93b.tar.gz
reilua-enhanced-3090134068e99e73ca57e8c0b62534c9bc99e93b.tar.bz2
reilua-enhanced-3090134068e99e73ca57e8c0b62534c9bc99e93b.zip
Changes Docs Folders
Diffstat (limited to 'docs/ZED_EDITOR_SETUP.md')
-rw-r--r--docs/ZED_EDITOR_SETUP.md434
1 files changed, 0 insertions, 434 deletions
diff --git a/docs/ZED_EDITOR_SETUP.md b/docs/ZED_EDITOR_SETUP.md
deleted file mode 100644
index c1ba754..0000000
--- a/docs/ZED_EDITOR_SETUP.md
+++ /dev/null
@@ -1,434 +0,0 @@
-# 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:
-> Note There is a sample zed settings json file in the repo root (zed.sample.settings.json)
-```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!