All notable changes to this project will be documented in this file.
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.3.1
- Add systemd-language-server to implementations
- Update implementations.md with Chapel's language server
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Apache license missing dash
- V1.3.1
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.3.0
- Add missing value to
pygls.trace.server
- Don't let Pyodide test fail the whole build
- Don't trigger CI on both push and pull_request
- Drop Python 3.7 support
- Update dependencies to latest(ish)
- Enable debugging of servers in the playground
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Cattrs is a direct dependency
- Update pytest-asyncio
- Add pytest-lsp and lsp-devtools to Implementations.md
- Update lsprotocol to 2023.0.1
- V1.3.0
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.2.1
- Handle ResponseErrors correctly
- Update CHANGELOG.md
- Clean CHANGELOG
- V1.2.1
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.2.0
- Remove dependency on typeguard
- Linting and formatting issues
- Simplify option validation check
- Index error on empty workspace
- Allow user to override Python interpreter
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Update
poetry.lock
after removing typeguard - Add example configuration
- Pin lsprotocol to 2023.0.0
- Move workspace/ into servers/ dir
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.2
- Correct doc comment for PositionCodec.client_num_units
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Split protocol.py into own folder/files
- Bump urllib3 from 2.0.6 to 2.0.7
- Allow installation with typeguard 4.x
- V1.1.2
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.1
- Prevent AttributeError root_path when no workspace
- Fix release process
- Manual changes for v1.1.0 release
- Explicit exports from pygls.workspace
- Bump urllib3 from 2.0.5 to 2.0.6
- V1.1.1
More details: https://github.com/openlawlibrary/pygls/releases/tag/v1.1.0
-
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Support cancellation in progress example
- Support work done progress cancellation from client
- Add a type annotation to help completions in editor
- Add
LanguageClient
with LSP methods autogenerated from type annotations inlsprotocol
(#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
andinlayHint/resolve
requests (#342)
pygls
no longer overrides the event loop for the current thread when given an explicit loop to use. (#334)- Fixed
MethodTypeNotRegisteredError
when registering aTEXT_DOCUMENT_DID_SAVE
feature with options. (#338) - Fixed detection of
LanguageServer
type annotations when using string-based annotations. ([#352])
- Update typeguard to 3.x (#327)
- Data files are no longer placed inside the wrong
site-packages
folder when installingpygls
([#232]) [#232]: openlawlibrary#232
- Fix progress example in json extension. (#230)
- Fix
AttributeErrors
inget_configuration_async
,get_configuration_callback
,get_configuration_threaded
commands in json extension. (#307) - Fix type annotations for
get_configuration_async
andget_configuration
methods onLanguageServer
andLanguageServerProtocol
objects (#307) - Provide
version
param for publishing diagnostics (#303) - Relaxed the Python version upper bound to
<4
(#318)
1.0.0 - 2/12/2022
BREAKING CHANGE: Replaced pydantic
with lsprotocol
0.13.1 - 1/12/2022
Docs now state that the v1 alpha branch is the recommended way to start new projects
Support CodeActionKind.SourceFixAll
0.13.0 - 2/11/2022
- Add
name
andversion
arguments to the constructor ofLanguageServer
(#274)
- Default behaviour change: uncaught errors are now sent as
showMessage
errors to client. Overrideable inLanguageServer.report_server_error()
: openlawlibrary#282
_data_recevied()
JSONRPC message parsing errors now caught- Fix "Task attached to a different loop" error in
Server.start_ws
(#268)
0.12.4 - 24/10/2022
- Remove upper bound on Pydantic when Python is <3.11
0.12.3 - 24/10/2022
- Require Pydantic 1.10.2 when Python is 3.11
0.12.2 - 26/09/2022
- Relaxed the Python version upper bound to
<4
(#266)
0.12.1 - 01/08/2022
Document
objects now expose a text document'slanguage_id
- Various Pyodide improvements
- Improved tests for more reliable CI
0.12 - 04/07/2022
- Allow custom word matching for
Document.word_at_point
- Upgraded Python support to 3.10, dropping support for 3.6
- Dependency updates, notably Pydantic 1.9 and Websockets 10
0.11.3 - 11/06/2021
- Update json-example to include an example semantic tokens method (#204)
- Fix example extension client not detecting debug mode appropriately (#193)
- Fix how the
semantic_tokens_provider
field ofServerCapabilities
is computed (#213)
0.11.2 - 07/23/2021
0.11.1 - 06/21/2021
- Remove defaults from all optional fields on protocol-defined types (#198)
0.11.0 - 06/18/2021
0.10.3 - 05/05/2021
- Move from Azure Pipelines to Github Actions (#182 & #183)
- Update json-example (#175)
- Relax text_doc type to VersionedTextDocumentIdentifier (#174)
- 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)
0.10.2 - 03/25/2021
- Handle lost connection; Remove psutil (#163)
0.10.1 - 03/17/2021
- Remove "query" from FoldingRangeParams (#153)
0.10.0 - 03/16/2021
- New LSP types and methods (#139)
pydantic
andtypeguard
deps for type-checking (#139)- Runtime type matching and deserialization (#139)
0.9.1 - 09/29/2020
- Functions to convert positions from and to utf-16 code units (#117)
- Type definitions for
ClientInfo
andHoverParams
(#125)
- Exit server normally when
ctrl+c
is pressed in command shell. - Mark deprecated
rangeLength
optional inTextDocumentContentChangeEvent
(#123) - Optimize json-rpc message serialization (#120)
- Fix
__init__()
constructors in several interface types (#125) - Fix valueSet type in
SymbolKindAbstract
(#125)
coroutine
deprecation warning - use async def instead (#136)
0.9.0 - 04/20/2020
- Fixed missing
Undo
member fromFailureHandlingKind
in types (#98) - Fixed
@command
,@feature
and@thread
decorators to retain type of wrapped functions (#89)
- 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)
- appveyor build script (#103)
0.8.1 - 09/05/2019
- Fix parsing of partial messages and those with Content-Length keyword (#80)
- Fix Full SyncKind for servers accepting Incremental SyncKind (#78)
0.8.0 - 05/13/2019
- 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)
- Response object should contain result OR error field (#64)
- Fix handling parameters whose names are reserved by Python (#56)
0.7.4 - 03/21/2019
- Add Pull Request template (#54)
0.7.3 - 01/30/2019
- Add flake8 and bandit checks to appveyor script
- Start using Keep a Changelog format.
- Fix and refactor initialize LSP method and add more tests
- Fix python 3.5 compatibility
- Use python 3.5 in appveyor script
- Fix README to use absolute paths for GitHub urls (needed for PyPi)
- Add
publish_diagnostics
to LanguageServer - Fix validation function in json example
- Correct advanced usage doc page
- "pygls" -> pygls everywhere in the docs
- Open source pygls
- 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
- Return awaitable Future object from get_configuration
- Add / Remove Workspace folders bugfix
- Attach loop to child watcher for UNIX systems
- Gracefully shutdown and exit server process
- Disallow requests after shutdown request is received
- Added more types for type hints
- Improved example
- Async functions (coroutines) support
- Mark function to execute it in a thread pool
- Added lsp types
- New example
- Fixed
appveyor.yml
- Added classes for
textDocument/completion
method response
- Initial Version