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
5ce5d697da
Implement LSP code folding
...
Change-Id: I2b076b1792c229cbbce610d7a195fa03eb29e6bd
Reviewed-on: https://dart-review.googlesource.com/c/89503
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-16 16:03:23 +00:00
Danny Tuppeny
daead8dff8
Add test for LSP rename that edits multiple files
...
Change-Id: I2132f63f75e7a910ebf9667d26e98598cea0e894
Reviewed-on: https://dart-review.googlesource.com/c/89540
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-15 15:10:42 +00:00
Danny Tuppeny
bdade89081
Improve testing of document versions in LSP renames
...
Change-Id: Ibbf562d6a99d73c00fc17521eb8576da4c708c06
Reviewed-on: https://dart-review.googlesource.com/c/89522
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-15 15:10:42 +00:00
Danny Tuppeny
04131e7fa0
Implement some more LSP rename tests
...
Change-Id: Idd0f3734b20f716d5e92f13c3a85f716c226fc5b
Typo
Change-Id: Ica50195f94f8c57be0e16edde75e6e287b45c06b
Reviewed-on: https://dart-review.googlesource.com/c/89365
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-15 08:58:13 +00:00
Danny Tuppeny
28fe86d70f
Add implementation/tests for LSP rename
...
Change-Id: I28e45cb7c979edb3d64b17e86ad0e03b7cd746cd
Reviewed-on: https://dart-review.googlesource.com/c/89361
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-14 18:12:47 +00:00
Danny Tuppeny
f5c69070af
Minor LSP refactors/tidy up
...
Change-Id: I7402d9493c58b1e020655a3b6332edbb5425fc22
Reviewed-on: https://dart-review.googlesource.com/c/89360
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-14 17:30:45 +00:00
Danny Tuppeny
4a80990758
Implement LSP textDocument/documentHighlight
...
Change-Id: Iaa63791192e274a7ef8f2f4095e2984b27d95e05
Reviewed-on: https://dart-review.googlesource.com/c/88962
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-10 15:02:11 +00:00
Danny Tuppeny
bf13ac85c4
Ensure LSP server clears diagnostics for removed files/analysis roots
...
Change-Id: I5eaa4141da499c5193253440e6913a0eb92ed533
Reviewed-on: https://dart-review.googlesource.com/c/88836
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-09 16:17:12 +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
Danny Tuppeny
e7b783ba5d
Fix bug with deprecated rootPath + add tests
...
Change-Id: I53d0a9b9a367839cc4ecf463017463f343947dfc
Reviewed-on: https://dart-review.googlesource.com/c/88826
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-09 16:04:12 +00:00
Danny Tuppeny
1ec1a8b46e
Update LSP status doc
...
Change-Id: I8143fb3adae5917cda8ed03088c1187f487c15a7
Reviewed-on: https://dart-review.googlesource.com/c/88720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2019-01-08 15:26:05 +00:00
Danny Tuppeny
c32737cc4c
Add open files to LSP server/drivers priorityFiles
...
Change-Id: Ida44f8edb23b5c4080cfd6ba44ee6b4764d9b131
Reviewed-on: https://dart-review.googlesource.com/c/88325
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-03 16:00:28 +00:00
Danny Tuppeny
64a4354a55
Improve handling of fatal errors in LSP
...
This adds a new type of error for when a client request to edit a document
is not valid because the document offsets don't match up. In this instance,
the client/server are out of sync and we shouldn't try to continue as we
may produce edits that ruin the users work. The server checks errors being
sent to the client and if it sees this type of error will switch to a state
that requests all messages, send a logMessage and then shut down after a few
seconds.
The LSP spec has been updated to suggest that clients automatically restart
servers if they quit unexpectedly (though advising not to do it forever in
the case of a crash at startup).
Change-Id: I7beafc87a082b971600135a4cc76eae53f5d9443
Reviewed-on: https://dart-review.googlesource.com/c/87841
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-01-02 09:07:21 +00:00
Danny Tuppeny
44a492f351
Send errors to LSP clients that request unsupported encodings
...
Change-Id: I25e70e92d12cdf1f5d34033264e0f027217d7c10
Reviewed-on: https://dart-review.googlesource.com/c/87780
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-20 18:08:14 +00:00
Danny Tuppeny
7280ca87a0
LSP requests must always be responded to, even if optional
...
Change-Id: Ieb3314028436a566c5fe4c2786c6b9196a03e26a
Reviewed-on: https://dart-review.googlesource.com/c/87800
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-20 17:36:58 +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
c7e8a37cf3
Add a divider between the element description and docs in hovers
...
Change-Id: I08dc275fd343dc7eaa0f0c6033b8889882889cd2
Reviewed-on: https://dart-review.googlesource.com/c/87406
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Auto-Submit: Danny Tuppeny <dantup@google.com >
2018-12-17 14:58:20 +00:00
Danny Tuppeny
b44f21e691
Add assists to LSP Code Actions
...
Change-Id: Ic3762513fa55deee394b74da78ee79a23c8c0493
Reviewed-on: https://dart-review.googlesource.com/c/87070
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-12 17:59:03 +00:00
Danny Tuppeny
e3991780a5
Add code fixes to LSP code actions
...
Change-Id: I5ec0932945cc6215cb671f89e8bed21609894ba2
Reviewed-on: https://dart-review.googlesource.com/c/87066
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-12 15:52:45 +00:00
Danny Tuppeny
7d4a6cc7e3
Change setup of capabilities in LSP tests to allow easier chaining
...
Change-Id: I6bc2743d64e7eb263f34f9c12140588d35b1482e
Reviewed-on: https://dart-review.googlesource.com/c/87065
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-12 15:52:45 +00:00
Danny Tuppeny
e6aec46b5f
Update LSP noEdits test to have imports that won't be removed as unused
...
Change-Id: I6e9d1111e4c9bcb37ad8722d175f3b78b9d8f842
Reviewed-on: https://dart-review.googlesource.com/c/86930
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 >
2018-12-11 17:17:50 +00:00
Danny Tuppeny
b924d754c5
Fix LSP Organize Imports so removing unused imports works
...
Using only a parsed file meant we didn't get any "unused import" hints, which meant the unused imports were not removed.
Change-Id: Id5c24ac59f38885d08756747ef9165102ad54388
Reviewed-on: https://dart-review.googlesource.com/c/86884
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-11 15:21:42 +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
3f130fb9ff
Don't call workspace/applyEdits for empty edits
...
Change-Id: I51a66e6522477ffb0b968f771b971fdf0d648a6c
Reviewed-on: https://dart-review.googlesource.com/c/86882
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-11 15:13:37 +00:00
Konstantin Shcheglov
79eb965d8f
Replace FileContentOverlay with OverlayResourceProvider in AnalysisServer.
...
R=brianwilkerson@google.com
Change-Id: Ic2fc13f4eacd94471fc8dccc1102e6fdbe59342d
Reviewed-on: https://dart-review.googlesource.com/c/86785
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2018-12-10 21:00:57 +00:00
Danny Tuppeny
89f299bee8
Add support for supplying simple edits for LSP workspace/applyEdits
...
Change-Id: Ia5b06ea4e002240eecc75f48e3cac245b9ce13ed
Reviewed-on: https://dart-review.googlesource.com/c/86768
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-10 17:54:53 +00:00
Danny Tuppeny
644d924978
Add path validation for opening files
...
Change-Id: Id78ce3475dad3c32c8a221e4ba4a3a6ccad97670
Reviewed-on: https://dart-review.googlesource.com/c/86760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-10 14:56:15 +00:00
Danny Tuppeny
59780df33f
Implement "Organize Imports" command
...
Change-Id: Iebf7022c1c8dd29a56d84da916713969d5b1269d
Reviewed-on: https://dart-review.googlesource.com/c/86762
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-10 14:56:14 +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
cd94fce0fe
Add ability for LSP server to send requests to (+ receive responses from) client
...
Change-Id: Iff1f8f63dc58ef2689ecc44f6e705d6811b12667
Reviewed-on: https://dart-review.googlesource.com/c/86420
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-06 19:11:46 +00:00
Danny Tuppeny
08c4e96fc5
Keep track of document version numbers from the client
...
Change-Id: Ib422b9fe4a5311be605d47f7a8001c535196e799
Reviewed-on: https://dart-review.googlesource.com/c/86384
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-12-06 18:17:24 +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
179b96e796
Remove unnecessary awaits in LSP tests
...
Change-Id: I7a3fb27a43593561b4793514909699d2a09e2f88
Reviewed-on: https://dart-review.googlesource.com/c/85744
Auto-Submit: Danny Tuppeny <dantup@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-12-03 16:32:07 +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
34d5751835
Move handlers into handlers/ folder + sort members
...
Change-Id: I1ccd4354300f80ba6361cc6b0c95eb0c8c434a69
Reviewed-on: https://dart-review.googlesource.com/c/85501
Auto-Submit: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-28 21:19:50 +00:00
Danny Tuppeny
67c00eff46
Add basic support for hierarchical document symbols
...
Change-Id: I376ca6f974875aace2d8a7fd9f6e1cd593d5527e
Reviewed-on: https://dart-review.googlesource.com/c/85485
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-28 18:21:15 +00:00
Danny Tuppeny
fd53d061f0
Implement formatting provider for format-on-type
...
Change-Id: I2260d7c829b80a638917b98d4b48bec329c3c603
Reviewed-on: https://dart-review.googlesource.com/c/85484
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-28 16:34:00 +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
a2ee414581
Support includeDeclarations for references request
...
Change-Id: If1b2aad828dd64b87e9d4fb3870d394d658d4698
Reviewed-on: https://dart-review.googlesource.com/c/85347
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-27 10:58:35 +00:00
Danny Tuppeny
6ae01bacbe
Tweak LSP test names
...
Change-Id: I74470c606e30775eb4efe3185551f6527268e9a1
Reviewed-on: https://dart-review.googlesource.com/c/85381
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-27 09:29:06 +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
a61e10c7fa
Change format tests to manually build an invalid string
...
This is because on Windows, Uri.file() checks for reserved file characters and we need to force an invalid path to test the server handles it.
Change-Id: Ife7b5e2aa48171e6334ac8a0a993e2ea7ef210a3
Reviewed-on: https://dart-review.googlesource.com/c/85383
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Danny Tuppeny <dantup@google.com >
2018-11-26 15:37:37 +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
02bf089ed5
Rough implementation of LSP References
...
Change-Id: I1e3bb010da3e832a73fa909d58e361e61e55f430
Reviewed-on: https://dart-review.googlesource.com/c/84841
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-22 19:09:55 +00:00
Danny Tuppeny
ea56fe71f5
Fix definitions that cross files
...
Change-Id: Id05f3abbca4d8a0336fe38b641637470afc70aa5
Reviewed-on: https://dart-review.googlesource.com/c/84843
Commit-Queue: Danny Tuppeny <dantup@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-11-22 18:28:56 +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