How odoo/odoo-pycharm works
OdooLS for PyCharm integrates a bundled Odoo language-server executable with PyCharm: opening a project file starts the server, whose Language Server Protocol features provide editor assistance. Users configure installation and project profiles, monitor server status, and can inspect configuration previews or submit crash reports. The README identifies hover, definition, completion, and diagnostics as capabilities; source excerpts show server startup, notifications, settings, installation, and crash reporting. Some registrations and settings behavior are represented at their supported source paths because their implementation was not sampled.
Main entry points: OdooLSLspServerSupportProvider.kt LSP provider · OdooCustomLsp4jClient.kt LSP client · OdooStatusBarWidget.kt Status widget · odools-binaries OdooLS executable
Components 18
IDE language support
- OdooLS plugin
src/main/resources/META-INF/plugin.xml - Language features
src/main/resources/META-INF/plugin.xml
Server lifecycle
- LSP provider
src/main/kotlin/com/odoo/odools/OdooLSLspServerSupportProvider.kt - OdooLS executable
src/main/resources/odools-binaries - LSP client
src/main/kotlin/com/odoo/odools/OdooCustomLsp4jClient.kt - Server listener
src/main/kotlin/com/odoo/odools/OdooLspServerListener.kt
Setup and configuration
- Installation settings
src/main/kotlin/com/odoo/odools/OdooLSApplicationSettings.kt - Path settings UI
src/main/kotlin/com/odoo/odools/OdooLSPathConfigurable.kt - Project profile
src/main/kotlin/com/odoo/odools/OdooLSProjectSettings.kt - Install resources
src/main/kotlin/com/odoo/odools/OdooLSInstallationProjectActivity.kt - Typeshed resources
typeshed
Monitoring and support
- Status widget
src/main/kotlin/com/odoo/odools/OdooStatusBarWidget.kt - HTML preview
src/main/kotlin/com/odoo/odools/HtmlPreviewEditor.kt - Crash report form
src/main/java/com/odoo/odools/forms/CrashReportForm.java - Crash notification data
src/main/kotlin/com/odoo/odools/params/DisplayCrashNotificationParams.kt
Other components
- Odoo developer
- Project file
- Crash report service
Connections 19
- Odoo developer → Project file: opens or edits
- Project file → LSP provider: triggers startup
- LSP provider → OdooLS executable: launches
- OdooLS executable → LSP client: sends notifications
- LSP client → Language features: provides LSP
- Language features → Project file: assists editing
- LSP provider → Server listener: registers
- LSP provider → Project profile: reads profile
- LSP provider → Installation settings: reads install path
- Odoo developer → Path settings UI: configures path
- Path settings UI → Installation settings: updates
- Install resources → OdooLS executable: installs executable
- Install resources → Typeshed resources: copies resources
- LSP client → Status widget: updates status and profiles
- Status widget → Project profile: selects profile
- Status widget → HTML preview: opens configuration preview
- LSP client → Crash notification data: receives crash data
- LSP client → Crash report form: opens report form
- Crash report form → Crash report service: submits report