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 autopep8
Ou 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
.vsix
depuis 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.vsix
L'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 install
Puis appuyez sur F5
dans VS Code pour lancer une nouvelle fenêtre avec l'extension en développement.
npm test
Ouvrez 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".