Danny Tuppeny
97e9186df8
[analyzer] Improve null handling in LSP server
...
Change-Id: I2060912853d131fad1d02ddc68f0b62ab16e3b23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196123
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-04-20 19:30:38 +00:00
Danny Tuppeny
77466f2b83
[analyzer] Migrate remaining LSP code to null-safe
...
Change-Id: I52c7d16bdaf9f68148a8d7a956330bc54608ec43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-04-19 19:35:28 +00:00
Danny Tuppeny
7ea96c93d5
[analyzer] Migrate generated LSP code to null-safe
...
Change-Id: Ibed2e796bfcfe2ad48460cf1029a9fd9034e6418
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195274
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-04-14 18:24:25 +00:00
Brian Wilkerson
61fda382c2
Migrate the LSP protocol generator
...
Change-Id: Ib44004af7ee760c3cec4f6bb72e7adba0b64988e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195180
Reviewed-by: Danny Tuppeny <danny@tuppeny.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2021-04-14 16:08:51 +00:00
Konstantin Shcheglov
e97f1bdbf0
Switch analysis_server to language 2.12, so null safety, but opt-out files.
...
This should allow doing partial migration, specifically protocol files,
which are imported by other libraries, but are a small library cycle
that does not import much outside of it.
Change-Id: I904c05d6d5b444ee9a9dbd1f7ada12aabdcc5165
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193583
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-30 23:39:37 +00:00
Brian Wilkerson
464cc509ab
Remove one move ignore comment from generated LSP support
...
Change-Id: I905056f98780f127466caa0ba9e8a5f6d13a7282
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192285
Reviewed-by: Danny Tuppeny <danny@tuppeny.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-03-22 14:09:23 +00:00
Brian Wilkerson
c5d01ec4f7
Remove a couple of ignore-in-file comments and make one more unnecessary in generated code
...
Change-Id: I8313fe2b4c3908dd5751f7eeca417adfcb2e5790
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192040
Reviewed-by: Danny Tuppeny <danny@tuppeny.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-03-19 14:44:27 +00:00
Danny Tuppeny
ff61ff7d33
[analyzer] Call toJson() on items in Lists when generating LSP json
...
Change-Id: I9f5876dc577499ae609079eaecae6a3eb47535d7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188288
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2021-03-02 15:24:38 +00:00
Danny Tuppeny
bb971209d1
[Analyzer] Update to latest version of LSP spec
...
Change-Id: I16418caeacad044269fd3d79e28b9b800ce798f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174804
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-12-02 20:11:08 +00:00
Sam Rawlins
ae466ef7d5
analysis_server: Bump to pedantic 1.9
...
Change-Id: Iec6c21abe09ecfbd74c4e1b18c0f519c0416467b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/163304
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-10-07 13:41:35 +00:00
Danny Tuppeny
aa5cb76916
[Analyzer] Make LSP literal types optional in constructors and validate their values
...
Change-Id: Id6dddd4ed4819a75da4226ee57d73a65c15c9048
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164965
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-09-30 09:39:22 +00:00
Danny Tuppeny
144a4545a0
[Analyzer] Update LSP toJson() functions to call toJson() on child fields
...
Change-Id: I596af3142ea3f1a279d3d98390cfe7e4d9d90cbd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164962
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-09-29 17:42:47 +00:00
Danny Tuppeny
5aa25f039c
[Analyzer] Handle literal types in LSP spec correctly
...
This ensures canParse() methods correctly handle literal types from the LSP spec instead of allowing any literal of the same type to pass.
Change-Id: I4876f4adc8de1d9138e0f62868aa6a8a010b9102
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/162753
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
2020-09-16 15:22:58 +00:00
Danny Tuppeny
6762f2294c
Tweak parser to handle LSP 3.16 spec
...
Change-Id: I53ef27f4b9dc9c4f6a8ff54e116dd3d2a9faf65c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156506
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-30 15:49:28 +00:00
Danny Tuppeny
c4a2efd6e7
Switch all generated LSP classes to use named constructor arguments
...
Change-Id: I111b58fa5d04314247d5f92650491cdeef6bd4a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153841
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
2020-07-09 17:18:07 +00:00
Danny Tuppeny
d86fa966a9
Tweaks to be able to parse v3.15 spec
...
Change-Id: Ifdb8696246b6893b743754dab5344d5939550a10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153776
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-09 17:18:07 +00:00
Danny Tuppeny
3b243a0c30
Recurse through lists/maps when generating hash codes in LSP types
...
Change-Id: I06117fe33c7bfb8553e9930afbf7e3bdc86c6032
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151230
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-15 18:09:02 +00:00
Danny Tuppeny
fad05e89dc
Require exact type matches for equality in LSP classes
...
Change-Id: Ia3f502a315e2c6fbc62eb6fbe3785dad86c782cc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142992
Commit-Queue: Danny Tuppeny <danny@tuppeny.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-04-14 15:47:01 +00:00
Danny Tuppeny
2fbe4d9194
Resolve type aliases when generating LSP equals methods
...
Change-Id: Iccecfa8dc8d77cb0d4358db1f7fa54607ffaa428
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142991
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-04-14 15:47:01 +00:00
Brian Wilkerson
8969b1839c
Enable omit_local_variable_types in analysis_server
...
Change-Id: I7e5c13d40fd276854601681fc84be321e6031b10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141583
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-03-30 03:58:44 +00:00
Brian Wilkerson
5d7f3093fd
Update the lsp generator to generate return types for all methods
...
Change-Id: Id1a90d770aa772327011ee8ccc7a13f0ca6f8de4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133961
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-01-30 21:43:43 +00:00
Brian Wilkerson
5584c96fde
Enable prefer_single_quotes in analysis_server
...
All of the changes except in the analysis options file are from dartfix.
Change-Id: Icd9bf02ad07f71d1fc365979c7dfe18a792dc595
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132624
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-01-21 17:52:52 +00:00
Brian Wilkerson
32ce9c7872
Enable prefer_collection_literals in three packages
...
Other than the following changes, all of the changes were made by dartfix:
- the analysis options files
- one line to enable the fix through dartfix (missed in an earlier CL)
- three places where a bug in the fix produced invalid code (issue and fix TBD)
Change-Id: If8660700792561805f4d1c96ccecd81abcebfeb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131209
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-01-11 20:39:02 +00:00
Sam Rawlins
327b1eb24f
analysis_server: Make private fields final where possible
...
Change-Id: Ibdeb7e66f07bf81205d70ac5d1c4cb4aa5a97671
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2020-01-08 22:08:02 +00:00
Brian Wilkerson
de57ff3b1d
Remove one missed generated use of const in analysis_server
...
Change-Id: I6aac996b1cfe1c5d49d2cb68f7c7340893b79531
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129040
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-12-19 05:34:28 +00:00
Brian Wilkerson
4043a6fce3
Remove unnecessary uses of new in analysis_server
...
Other than analysis_options.yaml, all of the changes were from running
dartfix.
Change-Id: I92411642f12a00fc6bd0bfd24dd60fe67f0fed16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128845
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-12-18 19:01:51 +00:00
Brian Wilkerson
c9d89d55a6
Stop generating unnecessary new and const in server generators
...
This doesn't remove other uses of new or const, only those that are
generated. I'll get the rest in other CLs.
Change-Id: I59c296da3d2da0f45789df156a682b9c37398087
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128840
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-12-18 05:15:25 +00:00
Danny Tuppeny
7c5d83d170
Add explicit type to generated LSP classes == operators
...
Change-Id: I42f76c8d48329fed93821a17da71963eaa813d4f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128161
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-12-12 18:42:20 +00:00
pq
52abcd3dd2
apply prefer_equal_for_default_values
...
Change-Id: I9b6fd3ee18ec834a5db3d0d25455b6db9ea4fbe2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108664
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Phil Quitslund <pquitslund@google.com >
2019-07-10 19:31:40 +00:00
Danny Tuppeny
1ba9ed7a35
Improve LSP JSON error when an expected object is not an object
...
Change-Id: I79632ceca51a5288f9b742f78483a6c2117f58d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105588
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
9d5b4491b2
Remove redundant null checks from LSP validation
...
Change-Id: Ie978b598ecec85455628263d0e3cf2f6f8f71253
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105587
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
ca3320e3bd
Tweak LSP JSON validation error messages
...
Change-Id: I732d0020a68256632ee8ba823a0a31eb4a5360d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105586
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
972ea07459
Simplify LSP json error reporter with push/pop fields
...
Change-Id: I5186eb2de3cf956ada04237ac7ff90fc2d01b79b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105585
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
530a2f5681
Make a null LSP error reporter to avoid so many null checks
...
Change-Id: I08f9259ba5aca52c61dd6820a3cc54bf40a30c92
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105584
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
9fb2842fce
Improve the error messages reported in LSP when params are not valid
...
Change-Id: I305955a22d687e8338138db48dff4e32589bbc6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-11 19:07:29 +00:00
Danny Tuppeny
9a3478ac20
Add support + tests for closing labels
...
Change-Id: I415a352010044d3b4aeb156d9d11dbbd94e86461
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104782
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-06-04 13:35:57 +00:00
Danny Tuppeny
f484e1b05e
Call canParse() for all LSP requests before passing to handlers
...
Any requests with params that don't pass canParse() will result in an InvalidParams error being returned without the handler being invoked.
Change-Id: Ic3e84b9259a467179baa2309fb58ee207f1225fa
Reviewed-on: https://dart-review.googlesource.com/c/94298
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Nate Bosch <nbosch@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-02-27 08:12:02 +00:00
Danny Tuppeny
0e54ce3b2d
Fix a canParse method that would overflow the stack
...
This method is (accidentally) not currently being called, but it will be soon. The codegen wasn't using the resolved base-type for the enum when writing the type check.
Change-Id: I025ed5109c70d8916f800295350a3f4eaf8f16f2
Reviewed-on: https://dart-review.googlesource.com/c/94294
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-02-27 08:12:02 +00:00
Danny Tuppeny
8fb52650e5
Ensure LSP canParse type-checks optional values
...
Previously we were only outputting the validation code if the value was required. This changes it to also validate in the case it's not required, but only if it's not-null.
Without this change, the test that parses `'overwrite': 1` fails (a boolean is expected), but with it, it passes.
Change-Id: Ic4afe1f6a8f78add2385831907b226022b7ecaec
Reviewed-on: https://dart-review.googlesource.com/c/94293
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-02-27 08:12:02 +00:00
Danny Tuppeny
d1876531f2
Fix LSP canParse to allow nulls where the spec allows
...
Change-Id: I8a34fbf03e45c85a70d44a54b1715b87f84f9c3b
Reviewed-on: https://dart-review.googlesource.com/c/94290
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-02-27 08:12:02 +00:00
Danny Tuppeny
a52ac7d27b
Correct LSP canParse functions for classes containing restricted enums
...
This fixes a mistake where enum classes were resolved to their base types (string, num) before being output in canParse methods of their containing class. This meant for "restricted" enum types (those that should not allow any value), canParse would incorrectly return true for out-of-bound values as long as they were the correct type.
Change-Id: I44e37a60b49287cf7202d5a578ee9c08cf898078
Reviewed-on: https://dart-review.googlesource.com/c/94280
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-02-26 07:38:12 +00:00
Danny Tuppeny
1e60ddbc5b
Make more LSP enum classes support "any value"
...
Previously we assumed enum classes could only be the values specified in the spec, but this was not correct - newer clients may know about values that we did not know about at the time we shipped(/last regenerated).
This makes the default for an enum class to support any class (avoiding deserialisation failures when new clients send newer values), and opts-out for those where the spec is explicit that the value set is fixed.
Also opened https://github.com/Microsoft/language-server-protocol/issues/686 for clarification that these "fixed set" values are explicitly intended to never be extended, or whether this is accidental.
Change-Id: I6243fc91c14ec0fa5622d3f6f29bf77cadf7da64
Reviewed-on: https://dart-review.googlesource.com/c/94220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-02-25 17:05:47 +00:00
Danny Tuppeny
17a439633d
Add a custom LSP method dart/diagnosticServer to start server/return port
...
Change-Id: I9d9be244251099c947b2998f0a45ec29ef29ad83
Reviewed-on: https://dart-review.googlesource.com/c/90012
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-17 16:37:49 +00:00
Danny Tuppeny
8cddcd20cd
Handle deserialising sub-classes in the super-classes fromJson
...
Change-Id: Ib9048cf674ad77711401e77e20e6dd8bc7e28e00
Reviewed-on: https://dart-review.googlesource.com/c/89363
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-14 18:35:27 +00:00
Danny Tuppeny
44449e29d2
Add a custom toJson snippet for LSP ResponseMessage for null handling
...
This adds some custom code for serialising ResponseMessage to ensure that only one of result or error are ever specified, as required by JSON RPC.
Change-Id: I2736b83755553a906264b1e5251d1a535dc289fb
Reviewed-on: https://dart-review.googlesource.com/c/88953
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-10 14:46:30 +00:00
Danny Tuppeny
7e0d65706f
Include null in allowed types for any and prefer null to omitting values if allowed
...
Without this, some requests that don't return values (like shutdown) would omit the `result` field from the response and this wasn't strictly correct (and caused an issue in testing with the VIM plugin).
Change-Id: Id961135d326b997aea69e29d9d2a4a2c310fa60c
Reviewed-on: https://dart-review.googlesource.com/c/88839
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-10 14:46:30 +00:00
Danny Tuppeny
ecccc0d94e
Fix some LSP TODOs, remove some redundant code, add comments
...
Change-Id: Ibd51b17919245f4215fa49a64fd008ba268ca174
Reviewed-on: https://dart-review.googlesource.com/c/87442
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-18 07:33:35 +00:00
Danny Tuppeny
2dbf91ff13
Add support for parsing Maps from the LSP spec
...
Change-Id: Ieafcacb3ba2f6be8d3232025d22fa5ec94de5352
Reviewed-on: https://dart-review.googlesource.com/c/85768
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-04 14:27:19 +00:00
Danny Tuppeny
0a7cf2a513
Allow nulls for union values where the field can be null or undefined
...
Change-Id: If0fea932c1534e8a6a151e67b16ad78cb14ec98d
Reviewed-on: https://dart-review.googlesource.com/c/85743
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-03 16:34:16 +00:00
Danny Tuppeny
854c654c2d
Fix LSP enum classes to use correct base types for value field
...
Change-Id: If7a009e37a6ff6b266de15b4c4949921e67fa3d9
Reviewed-on: https://dart-review.googlesource.com/c/85387
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-27 10:25:35 +00:00