Danny Tuppeny
16bcfbb104
Add deprecated_member_use_from_same_package to generated LSP ignores
...
Change-Id: I553dee00f08b8d84c4ba71ffb9dffbe1b262192c
Reviewed-on: https://dart-review.googlesource.com/c/90244
Auto-Submit: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-19 18:14:58 +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
7e05c2cd62
Add ability to generate custom classes for custom LSP methods
...
Change-Id: Ie613a828fd6d92133e3d5cb53673c37734fb6eec
Reviewed-on: https://dart-review.googlesource.com/c/90011
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-17 16:37:49 +00:00
Danny Tuppeny
bfe15d87d8
Fix LSP exceptions serializing ResponseErrors with Uris
...
The ResponseError.data field was typed `dynamic` (as in the LSP spec) but this allows us to accidentally put non-serializable classes in it which will result in server errors when we try to send them back.
This change forces them to Strings and it's up to the code constructing the error to convert any additional data to a string first.
In order to catch this in tests, the mocks now force serialisation of all types flowing from the server to the client (this already happened for client to server).
Change-Id: I5d7f322e1a4296b1479468e36d81daebdbb4ab52
Reviewed-on: https://dart-review.googlesource.com/c/89511
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-16 16:57:43 +00:00
Danny Tuppeny
ff5e5b6896
Regenerate LSP classes from spec + update README
...
The README was missing some methods (recent additions?) and also not quite in the same order - this fixes that. Also re-generates the classes based on current spec (mostly comments updates, but also non-nullability for `targetSelectionRange`.
Change-Id: I0dd4e24daf51b659783058362339550ec46fa1c8
Reviewed-on: https://dart-review.googlesource.com/c/89641
Commit-Queue: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Auto-Submit: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-15 16:51:19 +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
4f160558b3
Extract inline interfaces from results definitions in LSP spec
...
Change-Id: I8661c7af628f0e3125db0613149bbcbc9f27bbe6
Reviewed-on: https://dart-review.googlesource.com/c/89301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-14 15:04:13 +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
54fffe4cca
Add support for LSP workspace/didChangeWorkspaceFolders
...
Change-Id: I55401d0abf65979fcd446b2ba1e8d9b6c09a42fc
Reviewed-on: https://dart-review.googlesource.com/c/88831
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-09 16:04:12 +00:00
Brian Wilkerson
b84bfcce80
Remove some dead code from the analysis_server lsp support
...
Change-Id: I14478048d665204ce48ff8268fc3e47929867eb4
Reviewed-on: https://dart-review.googlesource.com/c/88166
Reviewed-by: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-01-02 14:30:44 +00:00
Danny Tuppeny
c7e7cbddca
Remove workaround for LSP spec issue
...
+ regen the file, which updated comments that were improved in the spec since the last time.
Change-Id: Ib46cabcbc6e22d778847891f309f9be5e354720c
Reviewed-on: https://dart-review.googlesource.com/c/87580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-18 14:30:03 +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
666eee40c7
Updates to pase tuples in LSP spec
...
Change-Id: Ia1ce7579e954a8000b3460445859a2d221cf1a8c
Reviewed-on: https://dart-review.googlesource.com/c/87441
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-17 17:58:17 +00:00
Danny Tuppeny
8ae255d876
Improve regex for extracting request constants from LSP spec
...
Some requests have additional newlines, so this change allows any number instead of exactly one.
Change-Id: Ie32b525b9b834223f91cd6339f6932fb02007c78
Reviewed-on: https://dart-review.googlesource.com/c/87060
Auto-Submit: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-12 15:00:22 +00:00
Danny Tuppeny
7d0823a97c
Advertise the commands/code actions we support to the client
...
Change-Id: I08064742f6591a702955408f023b2534bd7a2887
Reviewed-on: https://dart-review.googlesource.com/c/86883
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-11 15:13:57 +00:00
Danny Tuppeny
e4df0c2fd8
Add implementation+tests for LSP "Sort Members" code action
...
Change-Id: I671e5bba62e396d797926134123b141ad34d80a5
Reviewed-on: https://dart-review.googlesource.com/c/86422
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-10 08:45:00 +00:00
Danny Tuppeny
98fcc8e8dd
Set up a new CommandHandler that can delegate to individual commands handlers
...
Change-Id: I7c288dc14b911306688e66eeca4768cb2ee3629e
Reviewed-on: https://dart-review.googlesource.com/c/86383
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-06 17:25:56 +00:00
Danny Tuppeny
d8d8e222aa
Support returning code actions for SortMembers/OrganizeUsings
...
Change-Id: I2f80ec0bd7174a8c0943352b942478a360f16b36
Reviewed-on: https://dart-review.googlesource.com/c/86359
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-06 16:22:41 +00:00
Danny Tuppeny
af40a7e2d7
Improve regex to extract LSP request/notification methods
...
Change-Id: Ib4c0f1819155f1563ba3eeaafdcb3f5661064bf7
Reviewed-on: https://dart-review.googlesource.com/c/85947
Auto-Submit: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-04 16:14:30 +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
a354fd99a8
Add LSP support for flat symbol lists for older clients
...
Change-Id: Id74b34ea295a6733b374a820c6d596a11070f666
Reviewed-on: https://dart-review.googlesource.com/c/85561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-29 16:37:38 +00:00
Danny Tuppeny
ff04743cdb
Return errors instead of throwing
...
Change-Id: I5f24751ac71277cc906feeda4ab9a47b7186c82c
Reviewed-on: https://dart-review.googlesource.com/c/85393
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-28 15:46:24 +00:00
Danny Tuppeny
be6593e5c6
Reduce params type from Either2<List<dynamic>, dynamic> to just dynamic
...
Nothing in the LSP spec supports arrays as params (let alone a union of a single item or array).
Since the new type is dynamic, this should be non-breaking even if LSP changes (though we'll want to put it back if we need to write a handler for something that accepts a union like this).
Change-Id: Id1af1d438fede94906ae76eaa8b9a959b0b62ccf
Reviewed-on: https://dart-review.googlesource.com/c/85396
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-28 08:20:07 +00:00
Danny Tuppeny
1c1539a9f7
Add tests that all requests work for unopen files
...
And fix formatter to work with unopen files rather than rejecting with an error.
Change-Id: I27dbf830330beba371c4bc4bdb6ece0bf63cab33
Reviewed-on: https://dart-review.googlesource.com/c/85397
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-28 07:20:32 +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
Danny Tuppeny
285f7ddb1b
Switch to using constants for LSP method names
...
Change-Id: I4fd1b4e192ec1d0e53a4b3d81e5fdb8c1bb40208
Reviewed-on: https://dart-review.googlesource.com/c/85380
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-26 17:01:29 +00:00
Danny Tuppeny
8fa1e010c4
Validate paths and offsets for all requests
...
Change-Id: I72ede118b825debc6a16ec227b5116aa2fc73a8e
Reviewed-on: https://dart-review.googlesource.com/c/85162
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-26 11:39:30 +00:00
Danny Tuppeny
7f40d90544
Respect content formats when creating markup content
...
Change-Id: I7e76607d467887a8bcd58e89d70f91b3335f5f90
Reviewed-on: https://dart-review.googlesource.com/c/85165
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-26 10:35:17 +00:00
Danny Tuppeny
3cedae6f09
Change diagnostic.code to a simple String
...
Change-Id: Ieb23cda7c6f2c1dffb2e07e47dfe29ddc78f41de
Reviewed-on: https://dart-review.googlesource.com/c/85174
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-22 17:54:12 +00:00
Danny Tuppeny
6f2fad87d9
Improve handling of errors
...
Don't send raw errors in showMessage, send a generic message and put the rest in a log (this is to stop dart exceptions being shown unexpectedly in error popups in the editor).
Change-Id: Ie919d0efe098dfde5de1e25cb8718d37b22f9673
Reviewed-on: https://dart-review.googlesource.com/c/84906
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-21 08:26:30 +00:00
Danny Tuppeny
fa800e270c
Run "sort members" on LSP files
...
Change-Id: I166ad41b3f9dd84f664daf82e1eb38524be3ffdd
Reviewed-on: https://dart-review.googlesource.com/c/84200
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-13 18:08:46 +00:00
Danny Tuppeny
937e950fd2
Parse inline interfaces into types
...
Change-Id: I33c6d12d760b0e44505a34ad1b4cb77ffa0db0f3
Reviewed-on: https://dart-review.googlesource.com/c/84039
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-13 08:08:52 +00:00
Danny Tuppeny
3583065b27
Implement basic document formatting & update capabilities
...
Change-Id: Iabc29423fe71f99e8dcbc1bde7e3d3a9055f18da
Reviewed-on: https://dart-review.googlesource.com/c/83761
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-08 19:49:08 +00:00
Danny Tuppeny
9ee052fbeb
Add toString/equals/hashCode
...
Change-Id: I54a07a61b00462a05a1382e598e77e8c177befc0
Reviewed-on: https://dart-review.googlesource.com/c/83741
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-08 17:07:19 +00:00
Danny Tuppeny
d5e853e0ce
Improve parsing of LSP spec
...
Change-Id: Ica48b57c890105df346c5a133fe0389bd92dbb6e
Reviewed-on: https://dart-review.googlesource.com/c/83388
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-08 15:31:26 +00:00
Danny Tuppeny
04777b58cc
Add analysis (publishDiagnostics) and handling of opening/editing/closing files
...
Change-Id: I6dadf125b1a71c4f321f4ab9a01ff2bbfcbd1d4a
Reviewed-on: https://dart-review.googlesource.com/c/82500
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-08 08:52:48 +00:00
Danny Tuppeny
8852d36315
Add --lsp flag to analysis server and add basic Initialize handler
...
Change-Id: Iaf6c2a7cd56dea27233c4be1df2da900653e1822
Reviewed-on: https://dart-review.googlesource.com/c/81275
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-31 20:00:51 +00:00
Danny Tuppeny
e4566d3dbd
LSP: Fix nulls and missing fromJson calls in unions
...
Change-Id: I666d32e8a0463ba07756878b22293a7d3f55915d
Reviewed-on: https://dart-review.googlesource.com/c/81268
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-23 17:42:19 +00:00
Danny Tuppeny
a394e4f492
Fix handling of JSON with interfaces nested within Unions
...
Change-Id: I926c2374860824db3ceae6d74286474feb730676
Reviewed-on: https://dart-review.googlesource.com/c/81100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-23 07:08:44 +00:00
Danny Tuppeny
cddc2d42e1
Handle generic types in LSP spec parsing
...
The regex wasn't picking up generate type args (in interface definitions or usages in field definitions). This adds <> characters to the regex and handles them in mapping of types (as well as adds some additional tests to cover this).
Change-Id: I8187b3d2abb2b35c0d7638839e3116700cfbf9e0
Reviewed-on: https://dart-review.googlesource.com/c/81004
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-22 14:40:54 +00:00
Danny Tuppeny
bb93696c96
Simplify canParse on LSP types to only check for required fields
...
Change-Id: Idafb6936f0dd7adf283a690c5e56e2eebfc53ee4
Reviewed-on: https://dart-review.googlesource.com/c/80666
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-18 14:55:39 +00:00
Danny Tuppeny
36551624e1
Implement fromJson() constructors for LSP types
...
Also add a canParse() method that can check whether some provided JSON can be decoded into that type (used for detecting with type from a union to decode as).
Support equality checks on unions and a valueEquals() helper
Remove brittle tests that do exact comparisons on generated code
Fix deserialisation of lists to be cast and toList()'d
Add a more complete JSON test that includes lists, enums
Change-Id: Id56fdad9b1454e540e55907e0ff2608263a87c40
Reviewed-on: https://dart-review.googlesource.com/c/80580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-18 13:52:59 +00:00
Danny Tuppeny
3a69805f6b
Switch enums that don't have type aliases to stronger-typed values
...
Change-Id: Ia05c234c27c0c71bbb25ed29c3f7a0c02e938acb
Reviewed-on: https://dart-review.googlesource.com/c/80203
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-16 18:03:59 +00:00
Danny Tuppeny
9ba152b69e
Mark deprecated fields as such
...
Change-Id: Ifda0be1a8ab3824278994dc70002115fa82976e1
Reviewed-on: https://dart-review.googlesource.com/c/79841
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-16 15:57:16 +00:00
Danny Tuppeny
c0ec6299ad
Extract enums from the spec
...
Most enums are represented as namespaces, but FoldingKind is an enum and was previously missed.
Change-Id: I597dfc073e79b9052a98898d3fff135bce56c424
Reviewed-on: https://dart-review.googlesource.com/c/80101
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-16 14:41:30 +00:00
Danny Tuppeny
ea72ba3b1d
Move sorting from reading to codegen
...
Change-Id: I060e18851319cf7874a157b99fd019cd07169581
Reviewed-on: https://dart-review.googlesource.com/c/80102
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-16 14:40:56 +00:00
Danny Tuppeny
2084c5b2a9
Add toJson() methods
...
Change-Id: If5ffe3743c93100e012a2463fee3db37ab7d513d
Reviewed-on: https://dart-review.googlesource.com/c/79721
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-10-16 06:58:56 +00:00
Danny Tuppeny
311a184cb8
Remove type merging and the only instance that used it
...
Change-Id: I7b1f18073e4d204d0d92b531369888ec8f1f3dfb
Reviewed-on: https://dart-review.googlesource.com/c/79685
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-10-15 15:31:10 +00:00