A new year has come. This year I have more challenges to overcome. It's not just about continuing to improve the PyCharm plugin for Odoo but also about starting a new journey with the new Visual Studio Code extension for Odoo. Thank you to everyone who has supported me over the years! I hope that we will continue to work together towards the best programming experience for Odoo developers.
The first version of the new year has been released to PyCharm users. This release focuses on code completion for tags and attributes in QWeb template files. As you know, QWeb is the primary template engine used by Odoo. Under the hood, Odoo has three implementations of QWeb:
- Python implementation for back-end rendering - https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/models/ir_qweb.py
- JS implementation for non-OWL front-end templates - https://github.com/odoo/odoo/blob/16.0/addons/web/static/lib/qweb/qweb2.js
- OWL implementation for OWL templates - https://github.com/odoo/owl/blob/master/doc/reference/templates.md
These implementations have some directives in common (such as t-if, t-foreach,...) but also some differences (such as t-field which is only supported by the Python implementation,...). There are also differences between versions of Odoo (such as t-out is used instead of t-esc since Odoo 15,...).
The Odoo plugin now provides context-aware code completion for QWeb directives as well as HTML tags and attributes in QWeb template files.
This feature does not yet support embedded QWeb templates (such as those in Kanban views). I plan to improve it in later versions.
For the full change notes, please see https://plugins.jetbrains.com/plugin/13499-odoo.