diff options
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 628 |
1 files changed, 628 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ae79ada --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,628 @@ +# Changelog +All notable changes to this project will be documented in this file. + +## [1.2.1] - 2023-11-30 +More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.2.1 + +### Bug Fixes + +- Handle ResponseErrors correctly + +### Miscellaneous Tasks + +- Update CHANGELOG.md +- Clean CHANGELOG + +### Build + +- V1.2.1 + +## [1.2.0] - 2023-11-18 +More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.2.0 + +### Bug Fixes + +- Remove dependency on typeguard +- Linting and formatting issues +- Simplify option validation check +- Index error on empty workspace + +### Features + +- Allow user to override Python interpreter + +### Miscellaneous Tasks + +- Update CHANGELOG.md +- Update CONTRIBUTORS.md +- Update `poetry.lock` after removing typeguard +- Add example configuration +- Pin lsprotocol to 2023.0.0 + +### Refactor + +- Move workspace/ into servers/ dir + +## [1.1.2] - 2023-10-28 +More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.2 + +### Documentation + +- Correct doc comment for PositionCodec.client_num_units + +### Miscellaneous Tasks + +- Update CHANGELOG.md +- Update CONTRIBUTORS.md +- Split protocol.py into own folder/files + +### Build + +- Bump urllib3 from 2.0.6 to 2.0.7 +- Allow installation with typeguard 4.x +- V1.1.2 + +## [1.1.1] - 2023-10-06 +More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.1 + +### Bug Fixes + +- Prevent AttributeError root_path when no workspace + +### CI + +- Fix release process + +### Miscellaneous Tasks + +- Manual changes for v1.1.0 release +- Explicit exports from pygls.workspace + +### Build + +- Bump urllib3 from 2.0.5 to 2.0.6 +- V1.1.1 + +## [1.1.0] - 2023-10-02 +More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.0 + +### Bug Fixes + +- Fix broken link and outdated comment + +- Correctly cast from UTF16 positions +- Ensure server commands can be executed +- Mypy lints +- Error code of JsonRpcInternalError +- Only show code action when there's no sum +- Don't include trailing whitespace in code action title +- 'bool' object has no attribute 'resolve_provider' +- Computation of formatting and diagnostic provider capabilities + +### CI + +- Migrate to Poetry and modernise +- Linter for conventional commits +- Autogenerate changelog with `git-cliff` +- Automate CONTRIBUTORS.md +- Retry Pyodide tests +- Test against Python 3.12 +- Use `matrix.python-version` in cache key +- Update json-extension pipeline +- Pin poetry to 1.5.1 +- Do not install chromium/chromedriver +- Enable coverage reporting +- Run all lints even when some fail +- Increase Pyodide CI retries to 6 + +### Documentation + +- Use autodoc to document client methods +- Update docstrings +- Change specification for commit messages +- Typo in vscode-playground README.md +- Add api docs for servers, protocol and workspace +- Align docstring formatting +- Handle methods starting with `$/` +- Update links and code snippets +- Rename advanced usage to user guide +- Instructions for using plain text files with vscode-playground + +### Features + +- Add document diagnostic capability +- Add workspace symbol resolve +- Add workspace diagnostic support +- Adds inline value support +- Adds type hierarchy request support +- Add `await` syntax support for sending edit request to client +- Allow servers to provide `NotebookDocumentSyncOptions` +- Initial support for notebook document syncronisation +- Add notebook support to example `inlay_hints.py` server +- Accept `PositionEncoding` client capability +- Support UTF32 ans UTF8 position encoding + +### Miscellaneous Tasks + +- Update autogenerated Pygls client +- Introduce `black` formatting +- Add `.git-blame-ignore-revs` file +- Delete fountain-vscode-extension +- Update README.md +- Bump lsprotocol version +- Fix deprecation warning, set chrome path +- Disable body-max-line-length check +- Add .readthedocs.yaml +- Strict types in uris.py and workspace.py +- Move workspace/doc/position into own files +- Fix mypy types +- Maintain `Workspace` backwards compat +- Fix use of deprecated methods in tests/test_language_server.py + +### Refactor + +- Move example json-server to `examples/servers` +- Rename `json-vscode-extension/` -> `vscode-playground` +- Simplify end-to-end test client fixture definition +- Rename `Client` -> `JsonRPCClient` +- Rename `LanguageClient` -> `BaseLanguageClient` +- Rename `<verb>_document` to `<verb>_text_document` +- Expose workspace via a property +- Server `Position` class +- Rename server Position to PositionCodec, instantiate it in Workspace +- Reference types via `types` module +- Make `default` argument mandatory, add type annotations + +### Testing + +- Test that the client provided token is used +- Remove a useless sleep +- Test cases of server initiated progress +- Base Pyodide wheel deps off poetry.lock + +### Build + +- Bump semver in /examples/fountain-vscode-extension +- Bump semver in /examples/json-vscode-extension +- Bump word-wrap in /examples/json-vscode-extension +- Lock min Python version to 3.7.9 +- Cache specific Python minor version +- Bump lsprotocol to 2023.0.0b1 +- Release v1.1.0 + +### Json-extension + +- Support cancellation in progress example + +### Progress + +- Support work done progress cancellation from client + +### Server + +- Add a type annotation to help completions in editor + +### Extra Notes +#### Added + +- Add `LanguageClient` with LSP methods autogenerated from type annotations in `lsprotocol` ([#328]) +- Add base JSON-RPC `Client` with support for running servers in a subprocess and communicating over stdio. ([#328]) +- Support work done progress cancel ([#253]) +- Add support for `textDocument/inlayHint` and `inlayHint/resolve` requests ([#342]) + +#### Changed +#### Fixed + +- `pygls` no longer overrides the event loop for the current thread when given an explicit loop to use. ([#334]) +- Fixed `MethodTypeNotRegisteredError` when registering a `TEXT_DOCUMENT_DID_SAVE` feature with options. ([#338]) +- Fixed detection of `LanguageServer` type annotations when using string-based annotations. ([#352]) + +[#328]: https://github.com/openlawlibrary/pygls/issues/328 +[#334]: https://github.com/openlawlibrary/pygls/issues/334 +[#338]: https://github.com/openlawlibrary/pygls/discussions/338 +[#253]: https://github.com/openlawlibrary/pygls/pull/253 +[#342]: https://github.com/openlawlibrary/pygls/pull/342 +[#304]: https://github.com/openlawlibrary/pygls/issues/304 + +# Pre Automation Changelog + +## [1.0.2] - May 15th, 2023 +### Changed +- Update typeguard to 3.x ([#327]) + +[#327]: https://github.com/openlawlibrary/pygls/issues/327 + + +### Fixed +- Data files are no longer placed inside the wrong `site-packages` folder when installing `pygls` ([#232]) +[#232]: https://github.com/openlawlibrary/pygls/issues/232 + + +## [1.0.1] - February 16th, 2023 +### Fixed + + - Fix progress example in json extension. ([#230]) + - Fix `AttributeErrors` in `get_configuration_async`, `get_configuration_callback`, `get_configuration_threaded` commands in json extension. ([#307]) + - Fix type annotations for `get_configuration_async` and `get_configuration` methods on `LanguageServer` and `LanguageServerProtocol` objects ([#307]) + - Provide `version` param for publishing diagnostics ([#303]) + - Relaxed the Python version upper bound to `<4` ([#318]) + +[#230]: https://github.com/openlawlibrary/pygls/issues/230 +[#303]: https://github.com/openlawlibrary/pygls/issues/303 +[#307]: https://github.com/openlawlibrary/pygls/issues/307 +[#318]: https://github.com/openlawlibrary/pygls/issues/318 + +## [1.0.0] - 2/12/2022 +### Changed +BREAKING CHANGE: Replaced `pydantic` with [`lsprotocol`](https://github.com/microsoft/lsprotocol) + +## [0.13.1] - 1/12/2022 +### Changed +Docs now state that the v1 alpha branch is the recommended way to start new projects +### Fixed +Support `CodeActionKind.SourceFixAll` + +## [0.13.0] - 2/11/2022 +### Added +- Add `name` and `version` arguments to the constructor of `LanguageServer` ([#274]) +### Changed +- Default behaviour change: uncaught errors are now sent as `showMessage` errors to client. + Overrideable in `LanguageServer.report_server_error()`: https://github.com/openlawlibrary/pygls/pull/282 +### Fixed +- `_data_recevied()` JSONRPC message parsing errors now caught +- Fix "Task attached to a different loop" error in `Server.start_ws` ([#268]) + +[#274]: https://github.com/openlawlibrary/pygls/issues/274 +[#268]: https://github.com/openlawlibrary/pygls/issues/268 + +## [0.12.4] - 24/10/2022 +### Fixed +- Remove upper bound on Pydantic when Python is <3.11 + +## [0.12.3] - 24/10/2022 +### Fixed +- Require Pydantic 1.10.2 when Python is 3.11 + +## [0.12.2] - 26/09/2022 +### Fixed +- Relaxed the Python version upper bound to `<4` ([#266]) + +[#266]: https://github.com/openlawlibrary/pygls/pulls/266 + +## [0.12.1] - 01/08/2022 +### Changed +- `Document` objects now expose a text document's `language_id` +- Various Pyodide improvements +- Improved tests for more reliable CI + +## [0.12] - 04/07/2022 + +### Added + +- Allow custom word matching for `Document.word_at_point` + +### Changed + +- Upgraded Python support to 3.10, dropping support for 3.6 +- Dependency updates, notably Pydantic 1.9 and Websockets 10 + +### Fixed + +## [0.11.3] - 11/06/2021 + +### Added + +### Changed + +- Update json-example to include an example semantic tokens method ([#204]) + +### Fixed + +- Fix example extension client not detecting debug mode appropriately ([#193]) +- Fix how the `semantic_tokens_provider` field of `ServerCapabilities` is computed ([#213]) + +[#193]: https://github.com/openlawlibrary/pygls/issues/193 +[#204]: https://github.com/openlawlibrary/pygls/issues/204 +[#213]: https://github.com/openlawlibrary/pygls/pulls/213 + +## [0.11.2] - 07/23/2021 + +### Added + +### Changed + +### Fixed + +- Fix feature manager ([#203]) +- Use `127.0.0.1` for tests and examples to avoid Docker issues ([#165]) + +[#203]: https://github.com/openlawlibrary/pygls/issues/203 +[#165]: https://github.com/openlawlibrary/pygls/issues/165 + +## [0.11.1] - 06/21/2021 + +### Added + +### Changed + +- Remove defaults from all optional fields on protocol-defined types ([#198]) + +### Fixed + +[#198]: https://github.com/openlawlibrary/pygls/pull/198 + +## [0.11.0] - 06/18/2021 + +### Added + +- Testing against Python 3.9 ([#186]) +- Websocket server implementation `start_websocket` for LSP ([#129]) + +### Changed + +### Fixed + +[#186]: https://github.com/openlawlibrary/pygls/pull/186 +[#129]: https://github.com/openlawlibrary/pygls/pull/129 + +## [0.10.3] - 05/05/2021 + +### Added + +### Changed + +- Move from Azure Pipelines to Github Actions ([#182] & [#183]) +- Update json-example ([#175]) +- Relax text_doc type to VersionedTextDocumentIdentifier ([#174]) + +### Fixed + +- Handle `BrokenPipeError` on shutdown ([#181]) +- Exit when no more data available ([#178]) +- Adding kind field to resource file operation types ([#177]) +- Don't install the tests to site-packages ([#169]) +- Don't serialize unwanted `"null"` values in server capabilities ([#166]) + +[#183]: https://github.com/openlawlibrary/pygls/pull/183 +[#182]: https://github.com/openlawlibrary/pygls/pull/182 +[#181]: https://github.com/openlawlibrary/pygls/pull/181 +[#178]: https://github.com/openlawlibrary/pygls/pull/178 +[#177]: https://github.com/openlawlibrary/pygls/pull/177 +[#175]: https://github.com/openlawlibrary/pygls/pull/175 +[#174]: https://github.com/openlawlibrary/pygls/pull/174 +[#169]: https://github.com/openlawlibrary/pygls/pull/169 +[#166]: https://github.com/openlawlibrary/pygls/pull/166 + +## [0.10.2] - 03/25/2021 + +### Added + +### Changed + +- Handle lost connection; Remove psutil ([#163]) + +### Fixed + +- Fix `pydantic` Unions type conversion ([#160]) +- Fix change_notifications type (pydantic bug) ([#158]) + +[#163]: https://github.com/openlawlibrary/pygls/pull/163 +[#160]: https://github.com/openlawlibrary/pygls/pull/160 +[#158]: https://github.com/openlawlibrary/pygls/pull/158 + +## [0.10.1] - 03/17/2021 + +### Fixed + +- Remove "query" from FoldingRangeParams ([#153]) + +[#153]: https://github.com/openlawlibrary/pygls/pull/153 + +## [0.10.0] - 03/16/2021 + +### Added + +- New LSP types and methods ([#139]) +- `pydantic` and `typeguard` deps for type-checking ([#139]) +- Runtime type matching and deserialization ([#139]) + +### Changed + +- New LSP types and methods ([#139]) +- Updated docs ([#139]) + +### Fixed + +- Periodically check client pid and exit server ([#149]) +- Fix server handling of client errors ([#141]) + +[#149]: https://github.com/openlawlibrary/pygls/pull/149 +[#141]: https://github.com/openlawlibrary/pygls/pull/141 +[#139]: https://github.com/openlawlibrary/pygls/pull/139 + +## [0.9.1] - 09/29/2020 + +### Added + +- Functions to convert positions from and to utf-16 code units ([#117]) +- Type definitions for `ClientInfo` and `HoverParams` ([#125]) + +### Changed + +- Exit server normally when `ctrl+c` is pressed in command shell. +- Mark deprecated `rangeLength` optional in `TextDocumentContentChangeEvent` ([#123]) +- Optimize json-rpc message serialization ([#120]) +- Fix `__init__()` constructors in several interface types ([#125]) +- Fix valueSet type in `SymbolKindAbstract` ([#125]) + +### Fixed + +- `coroutine` deprecation warning - use async def instead ([#136]) + +[#125]: https://github.com/openlawlibrary/pygls/pull/125 +[#123]: https://github.com/openlawlibrary/pygls/pull/123 +[#120]: https://github.com/openlawlibrary/pygls/pull/120 +[#117]: https://github.com/openlawlibrary/pygls/pull/117 +[#136]: https://github.com/openlawlibrary/pygls/pull/136 + +## [0.9.0] - 04/20/2020 + +### Changed + +- Fixed missing `Undo` member from `FailureHandlingKind` in types ([#98]) +- Fixed `@command`, `@feature` and `@thread` decorators to retain type of wrapped functions ([#89]) + +### Added + +- _Azure Pipelines_ build script ([#100] and [#103]) +- Run tests and linters on multiple python versions with _tox_ ([#100]) +- Use python enums in types module ([#92]) +- Add comparisons and repr support to Range and Location types ([#90]) + +### Removed + +- _appveyor_ build script ([#103]) + +[#103]: https://github.com/openlawlibrary/pygls/pull/103 +[#100]: https://github.com/openlawlibrary/pygls/pull/100 +[#98]: https://github.com/openlawlibrary/pygls/pull/98 +[#92]: https://github.com/openlawlibrary/pygls/pull/92 +[#90]: https://github.com/openlawlibrary/pygls/pull/90 +[#89]: https://github.com/openlawlibrary/pygls/pull/89 + +## [0.8.1] - 09/05/2019 + +### Changed + +- Fix parsing of partial messages and those with Content-Length keyword ([#80]) +- Fix Full SyncKind for servers accepting Incremental SyncKind ([#78]) + +[#80]: https://github.com/openlawlibrary/pygls/pull/80 +[#78]: https://github.com/openlawlibrary/pygls/pull/78 + +## [0.8.0] - 05/13/2019 + +### Added + +- Add new types and features from LSP v3.14.0 ([#67]) +- Add API to dynamically register/unregister client capability ([#67]) +- Full text document synchronization support ([#65]) +- Add more tests for `deserialize_message` function ([#61]) + +### Changed + +- Response object should contain result OR error field ([#64]) +- Fix handling parameters whose names are reserved by Python ([#56]) + +[#67]: https://github.com/openlawlibrary/pygls/pull/67 +[#65]: https://github.com/openlawlibrary/pygls/pull/65 +[#64]: https://github.com/openlawlibrary/pygls/pull/64 +[#61]: https://github.com/openlawlibrary/pygls/pull/61 +[#56]: https://github.com/openlawlibrary/pygls/pull/56 + +## [0.7.4] - 03/21/2019 + +### Added + +- Add Pull Request template ([#54]) + +### Changed + +- Update dependencies ([#53]) +- Fix initialization failure when no workspace is open ([#51]) + +[#54]: https://github.com/openlawlibrary/pygls/pull/54 +[#53]: https://github.com/openlawlibrary/pygls/pull/53 +[#51]: https://github.com/openlawlibrary/pygls/pull/51 + +## [0.7.3] - 01/30/2019 + +### Added + +- Add _flake8_ and _bandit_ checks to _appveyor_ script + +### Changed + +- Start using [Keep a Changelog][keepachangelog] format. +- Fix and refactor _initialize_ LSP method and add more tests +- Fix _python 3.5_ compatibility +- Use _python 3.5_ in _appveyor_ script + +## 0.7.2 - 12/28/2018 + +- Fix README to use absolute paths for GitHub urls (needed for PyPi) + +## 0.7.1 - 12/28/2018 + +- Add `publish_diagnostics` to LanguageServer +- Fix validation function in json example +- Correct advanced usage doc page +- "pygls" -> _pygls_ everywhere in the docs + +## 0.7.0 - 12/21/2018 + +- Open source _pygls_ + +## 0.6.0 + +- Modules/functions/methods reorganization +- Add more features/commands to json-extension example +- Add unit tests to json-extension example +- Update `appveyor.yml` +- Small bug fixes + +## 0.5.0 + +- Return awaitable Future object from get_configuration +- Add / Remove Workspace folders bugfix +- Attach loop to child watcher for UNIX systems + +## 0.4.0 + +- Gracefully shutdown and exit server process +- Disallow requests after shutdown request is received +- Added more types for type hints +- Improved example + +## 0.3.0 + +- Async functions (coroutines) support +- Mark function to execute it in a thread pool +- Added _lsp_ types +- New example +- Fixed `appveyor.yml` + +## 0.2.0 + +- Added classes for `textDocument/completion` method response + +## 0.1.0 + +- Initial Version + +[keepachangelog]: https://keepachangelog.com/en/1.0.0/ +[semver]: https://semver.org/spec/v2.0.0.html + +[Unreleased]: https://github.com/openlawlibrary/pygls/compare/v1.0.0...HEAD +[1.0.0]: https://github.com/openlawlibrary/pygls/compare/v0.13.1...v1.0.0 +[0.13.1]: https://github.com/openlawlibrary/pygls/compare/v0.13.0...v0.13.1 +[0.13.0]: https://github.com/openlawlibrary/pygls/compare/v0.12.3...v0.13.0 +[0.12.4]: https://github.com/openlawlibrary/pygls/compare/v0.12.3...v0.12.4 +[0.12.3]: https://github.com/openlawlibrary/pygls/compare/v0.12.2...v0.12.3 +[0.12.2]: https://github.com/openlawlibrary/pygls/compare/v0.12.1...v0.12.2 +[0.12.1]: https://github.com/openlawlibrary/pygls/compare/v0.12...v0.12.1 +[0.12]: https://github.com/openlawlibrary/pygls/compare/v0.11.3...v0.12 +[0.11.3]: https://github.com/openlawlibrary/pygls/compare/v0.11.2...v0.11.3 +[0.11.2]: https://github.com/openlawlibrary/pygls/compare/v0.11.1...v0.11.2 +[0.11.1]: https://github.com/openlawlibrary/pygls/compare/v0.11.0...v0.11.1 +[0.11.0]: https://github.com/openlawlibrary/pygls/compare/v0.10.3...v0.11.0 +[0.10.3]: https://github.com/openlawlibrary/pygls/compare/v0.10.2...v0.10.3 +[0.10.2]: https://github.com/openlawlibrary/pygls/compare/v0.10.1...v0.10.2 +[0.10.1]: https://github.com/openlawlibrary/pygls/compare/v0.10.0...v0.10.1 +[0.10.0]: https://github.com/openlawlibrary/pygls/compare/v0.9.1...v0.10.0 +[0.9.1]: https://github.com/openlawlibrary/pygls/compare/v0.9.0...v0.9.1 +[0.9.0]: https://github.com/openlawlibrary/pygls/compare/v0.8.1...v0.9.0 +[0.8.1]: https://github.com/openlawlibrary/pygls/compare/v0.8.0...v0.8.1 +[0.8.0]: https://github.com/openlawlibrary/pygls/compare/v0.7.4...v0.8.0 +[0.7.4]: https://github.com/openlawlibrary/pygls/compare/v0.7.3...v0.7.4 +[0.7.3]: https://github.com/openlawlibrary/pygls/compare/v0.7.2...v0.7.3 |