Aller au contenu principal
Version: 1.2.1

Auto-completion (IDE)

OrvexORM inclut des annotations LuaLS completes dans tout le code source. Ca veut dire que ton IDE peut te proposer de l'auto-completion, du type-checking, et de la doc inline pendant que tu codes.


Configurer VS Code

1. Installer l'extension Lua

Installe l'extension Lua Language Server (sumneko) :

  • Cherche "Lua" dans les extensions VS Code
  • Installe celle de sumneko (la plus populaire)
astuce

L'extension s'appelle officiellement "Lua" par sumneko. Son ID est sumneko.lua.

2. Configurer .luarc.json

Cree un fichier .luarc.json a la racine de ta ressource :

ta-ressource/.luarc.json
{
"runtime": {
"version": "Lua 5.4"
},
"workspace": {
"library": [
"../orvexorm"
],
"checkThirdParty": false
},
"diagnostics": {
"globals": ["MySQL", "Citizen", "promise", "json", "OrvexORM"]
},
"completion": {
"callSnippet": "Replace",
"keywordSnippet": "Replace"
}
}

:::caution Adapter le chemin Le chemin "../orvexorm" depend de l'emplacement de ta ressource par rapport a OrvexORM dans le dossier resources/. Si ta structure est :

resources/
├── orvexorm/
└── ma-ressource/

Alors "../orvexorm" est correct. Adapte selon ta structure. :::

3. Profiter de l'auto-completion

Apres avoir configure le fichier, tu auras acces a :

Auto-completion sur OrvexORM — toutes les methodes apparaissent automatiquement :

OrvexORM.model() -- Creer un modele
OrvexORM.transaction() -- Creer une transaction
OrvexORM.enableCache() -- Activer le cache
OrvexORM.migrate() -- Lancer les migrations
OrvexORM.introspect() -- Introspecter une table
OrvexORM.fromTable() -- Generer un modele depuis une table
OrvexORM.raw() -- Requete SQL brute
-- etc.

Auto-completion sur les modelesUser., Vehicle., etc. :

User.create() -- Creer
User.find() -- Trouver un seul
User.findAll() -- Trouver plusieurs
User.update() -- Modifier
User.delete() -- Supprimer
User.query() -- Query Builder
User.count() -- Compter
User.sync() -- Creer la table
User.hook() -- Ajouter un hook
User.beforeCreate() -- Hook raccourci
-- etc.

Auto-completion sur les instancesplayer:, vehicle:, etc. :

player:update() -- Modifier cette instance
player:delete() -- Supprimer
player:increment() -- Incrementer un champ
player:decrement() -- Decrementer un champ
player:get() -- Charger une relation
player:attach() -- Attacher (many-to-many)
player:detach() -- Detacher
player:restore() -- Restaurer (soft delete)
-- etc.

Documentation inline — survole n'importe quelle methode pour voir sa description, ses parametres, et ses types :

---@param tableName string Le nom de la table MySQL
---@param fields table Les champs et leurs types
---@param opts? OrvexModelOpts Options (primaryKey, softDelete, timestamps...)
---@return OrvexModel

Types disponibles

OrvexORM definit les types suivants pour LuaLS :

TypeDescription
OrvexORMLe module principal
OrvexModelUn modele (User, Vehicle, etc.)
OrvexInstanceUne instance (un joueur trouve, un vehicule, etc.)
OrvexBuilderLe Query Builder
OrvexTransactionUne transaction
OrvexSchemaBuilderLe schema builder pour les migrations
OrvexTableBuilderLe builder de colonnes dans les migrations
OrvexCacheLe systeme de cache
OrvexAdapterL'adaptateur de base de donnees
OrvexFieldType"string" | "number" | "boolean" | "json" | "auto"
OrvexModelOptsOptions du modele (primaryKey, softDelete, timestamps)
OrvexMigrationDefinition d'une migration (name, up, down)
OrvexRelationDefDefinition d'une relation

Autres IDE

IntelliJ / Rider

Installe le plugin EmmyLua et configure le workspace de la meme maniere.

Neovim

Si tu utilises nvim-lspconfig avec lua_ls :

require('lspconfig').lua_ls.setup({
settings = {
Lua = {
runtime = { version = "Lua 5.4" },
workspace = {
library = { "/chemin/vers/resources/orvexorm" },
checkThirdParty = false,
},
diagnostics = {
globals = { "MySQL", "Citizen", "promise", "json", "OrvexORM" },
},
},
},
})

Distribution source

OrvexORM est distribue sous forme de fichiers source .lua contenant des annotations LuaLS completes. L'auto-completion fonctionne donc nativement — il suffit d'ajouter le dossier OrvexORM dans workspace.library de ton .luarc.json.