Une extension VS Code qui formate automatiquement le code Python contenu dans les balises <code> des fichiers XML Odoo.
- ✅ Formatage automatique : Formate le code Python lors de l'enregistrement des fichiers XML
- ✅ Détection intelligente : Détecte automatiquement les balises
<code>dans vos fichiers XML - ✅ Intégration autopep8 : Utilise autopep8 pour un formatage Python de qualité
- ✅ Commandes manuelles : Formatage à la demande via la palette de commandes
- ✅ Configuration flexible : Options personnalisables pour autopep8
- ✅ Support de sélection : Formate uniquement la partie sélectionnée
Avant d'utiliser cette extension, vous devez installer autopep8 :
pip install autopep8Ou avec conda :
conda install autopep8- Ouvrez VS Code
- Allez dans l'onglet Extensions (
Ctrl+Shift+X) - Recherchez "Odoo XML Python Formatter"
- Cliquez sur "Install"
- Téléchargez le fichier
.vsixdepuis les releases GitHub - Dans VS Code, ouvrez la palette de commandes (
Ctrl+Shift+P) - Tapez "Extensions: Install from VSIX..."
- Sélectionnez le fichier téléchargé
git clone https://github.com/fabien-bibe/odoo-xml-python-formatter.git
cd odoo-xml-python-formatter
npm install
npm run package
code --install-extension odoo-xml-python-formatter-0.0.1.vsixL'extension formate automatiquement le code Python lors de l'enregistrement des fichiers .xml qui contiennent des balises <code>.
Exemple :
Avant :
<record id="example" model="ir.actions.server">
<field name="code">
<code>
def action():
x=1
if x>0:
print("positive")
return x
</code>
</field>
</record>Après :
<record id="example" model="ir.actions.server">
<field name="code">
<code>
def action():
x = 1
if x > 0:
print("positive")
return x
</code>
</field>
</record>- Ctrl+Shift+P → "Format Python Code in XML" : Formate tout le document
- Ctrl+Shift+P → "Format Selected Python Code in XML" : Formate la sélection
- Clic droit dans un fichier XML → "Format Python Code in XML"
Accédez aux paramètres VS Code (Ctrl+,) et recherchez "Odoo XML Python Formatter" :
- Type :
boolean - Défaut :
true - Description : Active le formatage automatique lors de l'enregistrement
- Type :
array - Défaut :
["--max-line-length=79", "--aggressive", "--aggressive"] - Description : Arguments passés à autopep8
- Type :
boolean - Défaut :
false - Description : Active les logs de débogage dans la console
{
"odoo-xml-python-formatter.formatOnSave": true,
"odoo-xml-python-formatter.autopep8Args": [
"--max-line-length=88",
"--aggressive",
"--experimental"
],
"odoo-xml-python-formatter.enableLogging": true
}Cette extension est particulièrement utile pour :
- Développement Odoo : Formatage du code Python dans les vues XML
- Actions serveur : Code Python dans les
ir.actions.server - Rapports QWeb : Code Python dans les templates
- Données de démonstration : Scripts Python dans les fichiers de données
Erreur : autopep8 n'est pas installé
Solution :
pip install autopep8
# Ou vérifiez que autopep8 est dans votre PATH
which autopep8 # Linux/Mac
where autopep8 # Windows- Activez les logs de débogage dans les paramètres
- Consultez la console de développement (
Help > Toggle Developer Tools) - Vérifiez que votre code Python est syntaxiquement correct
Pour de gros fichiers XML, le formatage peut prendre quelques secondes. Vous pouvez :
- Désactiver le formatage automatique
- Utiliser le formatage manuel sur sélection
Les contributions sont les bienvenues !
git clone https://github.com/fabien-bibe/odoo-xml-python-formatter.git
cd odoo-xml-python-formatter
npm installPuis appuyez sur F5 dans VS Code pour lancer une nouvelle fenêtre avec l'extension en développement.
npm testOuvrez une issue GitHub avec :
- Version de VS Code
- Version de l'extension
- Exemple de fichier XML problématique
- Message d'erreur complet
Voir CHANGELOG.md pour l'historique des versions.
MIT License - voir LICENSE pour plus de détails.
Astuce : Pour une meilleure expérience, combinez cette extension avec d'autres extensions Odoo comme "Odoo Snippets" ou "XML Tools".