diff --git a/instructions/moodle.instructions.md b/instructions/moodle.instructions.md index 3789ae16..6a82943c 100644 --- a/instructions/moodle.instructions.md +++ b/instructions/moodle.instructions.md @@ -1,11 +1,11 @@ --- -applyTo: '*.php, *.js, *.mustache, *.xml, *.css, *.scss' +applyTo: '**/*.php, **/*.js, **/*.mustache, **/*.xml, **/*.css, **/*.scss' description: 'Instructions for GitHub Copilot to generate code in a Moodle project context.' --- # Project Context -This repository contains a Moodle project. It is based on Moodle version XXXX (specify version). +This repository contains a Moodle project. Ensure that any generated code is compatible with the specific Moodle version used in this project (for example, Moodle 3.11, 4.1 LTS, or later). It includes: - Plugin development (local, block, mod, auth, enrol, tool, etc.) @@ -19,7 +19,7 @@ It includes: - PHP must be compatible with the core version (e.g., PHP 7.4 / 8.0 / 8.1). - Do not use modern syntax that is not supported by core if it breaks compatibility. - Class naming must use Moodle namespaces. -- Use the MVC structure in plugins (classes/output, classes/form, db/, lang/, templates/…). +- Follow Moodle’s standard plugin directory layout (for example: classes/output, classes/form, db/, lang/, templates/…). - Mandatory use of Moodle security functions: - `$DB` with SQL placeholders - `require_login()`, `require_capability()` @@ -27,7 +27,7 @@ It includes: # Code Generation Rules -- When creating new classes, use the namespace `vendor\pluginname`. +- When creating new PHP classes in plugins, use the Moodle component (Frankenstyle) namespace that matches the plugin's component name, e.g. `local_myplugin`, `mod_forum`, `block_mycatalog`, `tool_mytool`. - In plugins, always respect the structure: - /db - /lang @@ -45,7 +45,7 @@ It includes: # Examples of What Copilot Should Be Able to Answer - "Generate a basic local plugin with version.php, settings.php, and lib.php." -- "Create a new table in install.xml and an upgrade script in upgrade.php." +- "Create a new table in db/install.xml and an upgrade script in db/upgrade.php." - "Generate a Moodle form using moodleform." - "Create a renderer with Mustache to display a table."