summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
blob: ae79ada42ebd566cbe44ac0fac402e5cec4f6974 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
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