@@ -108,70 +108,4 @@ def Generate_Bc_Plugin_Template() -> str:
108108 - fournit la variable globale PLUGIN pour l'exécution sandbox
109109 - fournit la fonction bcasl_register(manager) pour l'enregistrement direct
110110 """
111- return r'''
112-
113- from __future__ import annotations
114-
115- # Importer les types depuis le SDK pour rester compatible avec l'hôte
116- from Plugins_SDK.BcPluginContext import (
117- BcPluginBase, PluginMeta, PreCompileContext,
118- register_plugin, BCASL_PLUGIN_REGISTER_FUNC,
119- )
120-
121-
122- @register_plugin
123- class MyBcPlugin(BcPluginBase):
124- """Exemple minimal de plugin BC.
125-
126- - Utilisez le champ 'tags' pour aider l'ordonnancement (voir bcasl.tagging):
127- ex: ('clean',), ('check',), ('prepare',), ('license',), ('lint',), ('obfuscate',)
128- - Déclarez les dépendances dans 'requires' via les identifiants de plugins.
129- """
130- def __init__(self) -> None:
131- super().__init__(
132- meta=PluginMeta(
133- id="my.bc.plugin",
134- name="My BC Plugin",
135- version="0.1.0",
136- description="Describe what this plugin does before compilation.",
137- author="Your Name",
138- tags=("lint",), # ajustez selon la phase ciblée
139- ),
140- requires=(), # ex: ("other.plugin.id",)
141- priority=100, # priorité numérique (plus petit = plus tôt)
142- )
143-
144- def on_pre_compile(self, ctx: PreCompileContext) -> None:
145- """Point d'entrée du plugin (pré-compilation).
146-
147- Utilisez ctx.iter_files(include, exclude) pour parcourir les fichiers du workspace.
148- Les patterns par défaut peuvent être récupérés de la config si nécessaire.
149- Le code doit être idempotent et robuste.
150- """
151- # Exemple: itérer sur les fichiers Python
152- for path in ctx.iter_files(["**/*.py"], ["**/__pycache__/**", "**/*.pyc"]):
153- # TODO: effectuer une action (lecture/analyse/écriture)
154- _ = path
155- # Aucun retour attendu; lever une exception pour signaler un échec
156-
157- def apply_i18n(self, gui, tr: dict[str, str]) -> None:
158- """Appliquer les traductions à l'interface si le plugin expose une UI.
159-
160- - gui: objet graphique hôte (peut être None en mode headless)
161- - tr: dictionnaire de chaînes localisées
162- """
163- # Optionnel: implémenter si nécessaire
164- return None
165-
166-
167- # Instance globale (facilitée pour l'exécution en sandbox)
168- PLUGIN = MyBcPlugin()
169-
170-
171- def bcasl_register(manager) -> None:
172- """Point d'extension appelé par le chargeur pour enregistrer le plugin.
173-
174- L'hôte invoquera manager.add_plugin(PLUGIN).
175- """
176- manager.add_plugin(PLUGIN)
177- '''
111+ return
0 commit comments