Releases: odoo/odoo-ls
Releases · odoo/odoo-ls
1.3.1 - Beta
Fix
- Fixed a deadlock that could occur during startup.
1.3.0 - Beta
This update is refactoring the way "Goto" features are working, as well as adding the new Go to References feature.
Server
- Change gotoDefinition to pass through imports until the true definition of the symbol
- Add GoToDeclaration that goes to the first declaration or assignation found for a symbol
- Add GoToReferences that will search for all usage of a symbol. Available in python, xml, csv and
__manifest__.pyfiles. - Implement all these gotos features in CSV files.
- Load and validate
assetnodes in XML files. - Validation of language codes used in XML files.
- Add a new option in configuration files: "additional_languages", allowing you to add languages that would not be added in data files.
- Server will not close anymore if multiple workspace folders has the same name. However, it will still be impossible to reference one of them in a configuration.
- Handle lambda expressions.
- Add evaluation for
requestandrequest.envin controllers. - Validation of
assetsvalues in__manifest__.py - Improve the
selfevaluation to be able to propagate it to class children or overrides. - Add the list of folders to the documentation when hovering a symbol representing a python namespace
- CLI mode is now loading configurations like the normal process is doing, making the profiles available in this mode.
- Add a new argument to the command line:
selected_configallowing you to manually select a profile when running in CLI mode. - Various performances update (HashMap without hashing function for integer keys, better filesystem access on windows)
- Upgrade Rust to 1.94, Ruff to 0.15.0
1.2.1
We are addressing some errors in 1.2.0 before releasing the 1.3.0 in the next days
Server
- Remove OLS05038 (empty function data in XML files), which is a valid use case.
- New warning if 'odoo/addons' is missing.
- Add completion of
inverse_nameif keyword is missing in the relational field.
Fixes
- Fix crash on unexpected arguments in reading kwarg of self.env.ref function.
- When autocompleting function calls, OdooLS will now follow return values hidden behind multiple references.
- Fix annotation evaluation on functions that was dropped after being processed
- Fix 'with' statement type evaluation
- Fix the anti-duplication algorithm to prevent loading some symbols.
- Fix first argument evalution on static methods and classmethods.
- Fix evaluation of
inverse_nameif keyword is missing in the relational field declaration. - Remove some useless logs.
1.2.0
This update pushes the pre-release version 1.1 to the stable branch. There is nothing new if you already uses the pre-release version
This update improves the QoL on various IDEs and brings some new features:
- Workspace Symbol Lookup allows you to search for any class/function/model/xml_id in the whole project (ctrl-t on vscode). All xml_id are prefixed
byxmlid.and model names are quoted.
- Import statements now have autocompletion, hover and gotodefinition features.
- We now have a better support for WSL paths!
VsCode
- Better display about the server status.
PyCharm
- Improve the lifecycle of OdooLS. Server will be always running but idle, and starts only if a configuration is detected. It implies
that we removed the 'start server' button as it is not useful anymore. It should end up in a more clear and usable interface. - Fix the "Disabled" profile behavior that was preventing any further profile change.
- Starting from 2025.3, PyCharm will be able to display the loading status of the server.
- Attach additional stubs (with lxml) to the build.
- Add configuration wiki link on the settings page.
- Update deprecated API calls to isAarch64 methods.
Server
- Support for workspace Symbol requests.
- Core structure to support
$/cancelRequestnotification and use it for Workspace Symbol Request. These notifications indicates that a job can be cancelled because no more useful. - Import statements now have autocompletion, hover feature and gotodefinition.
- Server now supports WSL paths, including
file:////orfile://wsl.localhost - Server now use workDoneProgress to report loading status to client. Client that supports this feature will now display the loading progression at startup.
- Server will now send more information about its status: it can indicate if it is waiting for a git lock to be freed.
- Autocompletion and validation for inverse_name keyword argument.
- Crash reports will now include the latest LSP messages to help the debugging and give us a better overview of what happened before the crash
- It is now possible to autocomplete slices (
self.env[") even without closing the brackets. - Diagnostic filters in configuration files can now accept variables like
${userHome}or${workspaceFolder} - You can now hover and gotodefinition for module names in
__manifest__.pyfiles, and in hover you could alse see full list of the module's dependencies.
filteredandfiltered_domainnow has a proper return value.- Remove diagnostics of ImportError in the
exceptblock of atry..except ImportErrorstatement. - Doing a gotodefinition on a
display_namewill now redirect you to the compute method. - Update Ruff dependencies to 0.14.3.
- Support for encoding UTF-8, UTF-16 and UTF-32.
- Support for "untitled" files for VsCode.
- Add tests for diagnostics
- Various fixes
- Fix and support for CachedModel introduced in 19.1
- Use a deterministic job queue to avoid random errors caused by different order of symbols
- For that we replace the current HashSet with a FIFO one, so symbols are processed in the queue order
Fixes
- Doing a gotodefinition on a value (like a string
"a string") will not lead to the value definition (class str) - Doing a cyclic dependency between 'modules depends' will not crash anymore but generate the diagnostic OLS04012.
- Fix the path to additional stubs and so fix the usage of the lxml stubs.
- If odoo_path is ending with
.somethingbut is pointing to a valid directory, the server should not considersomethingas a file extension, but as a part of the folder name. - Fix some internal hooks to work with user defined Fields, instead of only the Odoo ones.
- Configuration option "diag_missing_imports" is now really taken into account when generating diagnostics about imports.
- Fix dependencies on comodel and relation fields diagnostics.
- Fix missing ImportError diagnostic on import statement without a 'from' or 'as' part.
- Various small fixes and typos
- Fix crash when a file is importing a .pyd with the same name (avoid self referencing)
- Fix OLS01002 not emitted on valued variables
- FIX OLS01004 that should not be emitted on
classmethod - FIX OLS01007 and OLS01010 on evaluation of function calls when keyword-only arguments are used.
- XML Syntax error is now OLS05000
- Fix range for diagnostic OLS05009
- Fix OLS01009 that could be emitted on valid cases.
- Fix detection of
searchandinversekeyword on fields declaration - Fix detection of
inverse_nameon One2Many if the keyword was missing - Fix deprecation warning OLS03301 that was not emitted
- Fix crash on data not being string in
__manifest__.py - Fix validation of
__manifest__.pyfiles even if the folder does not contain any__init__.py - Functions will not expose their internal function in an autocompletion anymore
- Fix wiki link for configuration on welcome page
- Avoid having empty paths for addons or additional stubs in cli mode
- Avoid adding model dependencies in orm files to avoid rebuilding base files
- Avoid loading Models defined inside functions, e.g. tests.
- Avoid attempting to rebuild
__iter__on external files, as their file infos are deleted - Fix fetching symbols in inheritance tree by early stopping when one is found
- Fix failure to detect models when
CachedModelis missing - Fix crash on SQL datafiles
- Fix crash on missing python command
- Fix crash on model classes outside a module
- Load modules in the same order Odoo load them
- Ignore invalid
Namedexpression on incomplete AST - Handle models subscripts like
self.search([])[:5] - Add missing Self evaluation to
searchmethod on BaseModel - Methods
__init_subclass__and__class_getitem__are now automatically detected asclassmethods - Allow
M2OReferenceoninverse_name - Fix index calculation in the arguments of functions
- Fix crash on empty config received from client
- Improve borrowing to avoid some borrow errors
next_refwill now rebuild descriptor on-the-fly if needed- Fix
follow_refsometimes dropping evaluations incorrectly - Remove wrong stop_on_type in features
- Check all relational fields during domain validation
- Correctly identify non-registry model classes
- Update typeshed
- Improve the
env.__getitem__to handle multiple evaluation - Improve the
follow_refmethod to handletyping.Selfevaluations
1.1.3 - Beta
Fixes
- Fix failure to detect models when
CachedModelis missing - Fix crash on SQL datafiles
- Fix crash on missing python command
- Fix crash on model classes outside a module
- Load modules in the same order Odoo load them
- Ignore invalid
Namedexpression on incomplete AST - Handle models subscripts like
self.search([])[:5] - Add missing Self evaluation to
searchmethod on BaseModel - Methods
__init_subclass__and__class_getitem__are now automatically detected asclassmethods - Allow
M2OReferenceoninverse_name - Fix index calculation in the arguments of functions
- Fix crash on empty config received from client
- Improve borrowing to avoid some borrow errors
next_refwill now rebuild descriptor on-the-fly if needed- Fix
follow_refsometimes dropping evaluations incorrectly - Remove wrong stop_on_type in features
- Check all relational fields during domain validation
- Correctly identify non-registry model classes
- Update typeshed
- Improve the
env.__getitem__to handle multiple evaluation - Improve the
follow_refmethod to handletyping.Selfevaluations
1.1.3 - Alpha.1
Changelog to come.
Built for internal testing purpose.
1.1.3 - Alpha
Changelog to come.
Built for internal testing purpose.
1.1.2 - Beta
Server
- Various fixes
- Fix and support for CachedModel introduced in 19.1
- Use a deterministic job queue to avoid random errors caused by different order of symbols
- For that we replace the current HashSet with a FIFO one, so symbols are processed in the queue order
Fixes
- Fix wiki link for configuration on welcome page
- Avoid having empty paths for addons or additional stubs in cli mode
- Avoid adding model dependencies in orm files to avoid rebuilding base files
- Avoid loading Models defined inside functions, e.g. tests.
- Avoid attempting to rebuild
__iter__on external files, as their file infos are deleted - Fix fetching symbols in inheritance tree by early stopping when one is found
1.1.2 - Alpha
Changelog to come.
Built for internal testing purpose.
1.1.1 - Beta
Server
- Support for encoding UTF-8, UTF-16 and UTF-32.
- Support for "untitled" files for VsCode.
- Add tests for diagnostics
Fixs
- Fix crash when a file is importing a .pyd with the same name (avoid self referencing)
- Fix OLS01002 not emitted on valued variables
- FIX OLS01004 that should not be emitted on
classmethod - FIX OLS01007 and OLS01010 on evaluation of function calls when keyword-only arguments are used.
- XML Syntax error is now OLS05000
- Fix range for diagnostic OLS05009
- Fix OLS01009 that could be emitted on valid cases.
- Fix detection of
searchandinversekeyword on fields declaration - Fix detection of
inverse_nameon One2Many if the keyword was missing - Fix deprecation warning OLS03301 that was not emitted
- Fix crash on data not being string in
__manifest__.py - Fix validation of
__manifest__.pyfiles even if the folder does not contain any__init__.py - Functions will not expose their internal function in an autocompletion anymore

