All notable changes to this project will be documented in this file.
More details: https://github.com/openlawlibrary/pygls/releases/tag/v2.0.0a2
- Use
BinaryIO
notTextIO
instart_io()
- Reduce log noise generated by unimplemented methods
- Return
None
for nonfile:
URIs - Cancel pending client requests when server process exits
- Wait for the server process to exit
- Don't call sys.exit
- Run the new pyodide test suite in CI
- Bump action versions
- Add RELEASING.md doc
- Update migration guide to cover thread pool changes
- Remove Strata server implementation
- Update v2 migration guide
- Update migration guide
- Fix intersphinx reference
- Add guide on running the pyodide test suite
- Restructure the documentation... again
- Add guide on running a pyodide server on nodejs
- Add guide on running a pyodide server in the browser
- Add
start_tcp
method toJsonRPCClient
- Add
pygls.cli.start_server
- Add
start_ws
method to pygls'LangugageClient
- Fallback to a synchronous main loop on WASM platforms
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Properly indent RELEASING.md
- Fix task name
- Bump minimum required websockets version
- Update to lsprotocol-2024.0.0b1
- Delete pyodide specific code
- Remove
multiprocessing.pool.ThreadPool
- Make some methods public
- Convert
aio_readline
function to arun_async
method - Use high-level asyncio API in
start_io
- Use new
pygls.io_
module for pygls' client - Use high-level asyncio API for
server.start_tcp
- Use high-level asyncio API for
server.start_ws
- Stop inheriting from
asyncio.Protocol
- Rename transport to writer
- Add end-to-end test covering threaded handlers
- Simplify coverage reporting
- Add the option to run the end-to-end tests over TCP
- Skip test on Windows for now
- Run end-to-end tests over WebSockets
- Include values for runtime and transport in pytest's header
- Update test cases to align with event loop changes
- Delete the old pyodide test suite
- Add option to run end-to-end tests under pyodide
- V2.0.0a2
More details: https://github.com/openlawlibrary/pygls/releases/tag/v2.0.0a1
- Compute
resolve_provider
value forCodeLensOptions
- Respect client's preferred encoding when possible
- Compute
prepare_provider
forRenameOptions
- Default cwd for local extension
- Compute
resolve_provider
forDocumentLinkOptions
- Update json-extension.yml to align with local extension
- Start testing against Python 3.13
- Stop testing on Python 3.8
- Use Python version in cache key
- Update CONTRIBUTING.md
- Add linter commander to PR template
- Add
sphinx-design
plugin - Delete getting started guide
- Create a "How To" section
- Add guide on handling invalid data
- Add about section
- Add API Reference section
- Update home page
- Setup basic tutorial structure
- Add how to guide on using the
pygls-playground
- Add module docstrings for the example servers
- Include the hello world example code directly
- Include the example servers in the documentation
- Add Document Links example server
- Rpm-spec-language-server to Implementations.md
- Update GotoX title
- Add Document and Workspace symbol example server
- Fix typo in
server.py
- Fix typo in user guide
- Add guide on implementing semantic tokens
- Add example semantic tokens server
- Add draft v2 migration guide
- Provide more detail in exception
- Update to latest lsprotocol 2024.0.0a2
- Generate server methods from lsp types
- Update CHANGELOG.md
- Update CONTRIBUTORS.md
- Add README
- Add Kedro VS Code extension into implementations.md
- Update VSCode settings to align with local extension
- Update pygls-playground README
- Update requirements.txt for documentation
- Regen poetry.lock
- Fix lints
- Remove
pathMappings
- Remove redundant method definitions
- Align to new server implementation
- Align tests with new server implementation
- Rename scripts to
generate_code
- Add call for testing to README
- Remove deprecated code
- End-to-end test infrastructure
- Update hover.py example to use language server argument
- Make the playground extension workspace local
- Rely on the
pygls.server.cwd
setting - Use generated
BaseLanguageServer
- Rename
Server
toJsonRPCServer
- Add end-to-end test for
textDocument/hover
requests - Add end-to-end tests for color related methods
- Add end-to-end tests for various "Goto X" methods
- Add end-to-end tests for
textDocument/codeLens
- Add end-to-end tests for the different diagnostic approaches
- Add end-to-end tests for the various formatting requests
- Extend
get_client_for
to accept custom capabilities - Add end-to-end tests for rename methods
- Add end-to-end semantic tokens test
- Upgrade black to latest (24.3.0)
- Bump idna from 3.6 to 3.7
- Bump jinja2 from 3.1.3 to 3.1.4
- Requests from 2.31.0 to 2.32.0
- Bump idna from 3.6 to 3.7 in /docs
- Bump certifi from 2023.11.17 to 2024.7.4
- Bump requests from 2.31.0 to 2.32.2 in /docs
- Bump urllib3 from 2.1.0 to 2.2.2
- Bump jinja2 from 3.1.2 to 3.1.4 in /docs
- Bump zipp from 3.17.0 to 3.19.1
- Bump setuptools from 69.0.2 to 70.0.0 in /docs
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]: #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()
: #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