Commit Graph

2570 Commits

Author SHA1 Message Date
Paul Berry 5b00611568 Revert "Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request."
This reverts commit 3428cc6dae.

Reason for revert: Unintentional breaking API change

Original change's description:
> Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request.
> 
> This CL changes "analysis.reanalyze" API. We decided to repurpose it. It was not
> used for some time now in IntelliJ, and AFAIK has never been used in VS Code.
> 
> R=​brianwilkerson@google.com, paulberry@google.com
> 
> Change-Id: I7510b0189197c9f3f848b0fc59a7b2bd22889ac7
> Reviewed-on: https://dart-review.googlesource.com/c/85523
> Reviewed-by: Paul Berry <paulberry@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>

TBR=paulberry@google.com,scheglov@google.com,brianwilkerson@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I6a3e874278f4cf976363a0c7f80f7a65a0a03acf
Reviewed-on: https://dart-review.googlesource.com/c/85723
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-11-30 21:03:30 +00:00
Konstantin Shcheglov 3428cc6dae Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request.
This CL changes "analysis.reanalyze" API. We decided to repurpose it. It was not
used for some time now in IntelliJ, and AFAIK has never been used in VS Code.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I7510b0189197c9f3f848b0fc59a7b2bd22889ac7
Reviewed-on: https://dart-review.googlesource.com/c/85523
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-29 19:08:30 +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
Brian Wilkerson 235da6f45d Rename AstNode.getAncestor by deprecating it and adding the new method (analyzer)
Change-Id: Ia00d8cb7153bd9db798352aab00b2431ba709671
Reviewed-on: https://dart-review.googlesource.com/c/85540
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-28 21:04:57 +00:00
Konstantin Shcheglov 6261ede840 Remove AnalysisServer.getResolvedCompilationUnit().
R=brianwilkerson@google.com

Change-Id: Ie13587ac9b2690ff9334df3861c4aa64d7d5ffc3
Reviewed-on: https://dart-review.googlesource.com/c/85419
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-28 18:36:46 +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 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
Konstantin Shcheglov 2beed40848 Move Workspace and its implementations into src/workspace.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I172d95e55ced9925e8f428b9b07f432251ef5248
Reviewed-on: https://dart-review.googlesource.com/c/85462
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-27 21:50:00 +00:00
Danny Tuppeny 23d73687d2 Add logging of request in instrumentation log
Change-Id: I4e39278a86637e099812ce61199b6a36d687722c
Reviewed-on: https://dart-review.googlesource.com/c/85395
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-27 17:51:48 +00:00
Danny Tuppeny 829832d390 Minor LSP cleanup
Addresses on TODO and removes another that was already dealt with.

Change-Id: Ib9658102d745210b714e44ee17058afd3bae52cc
Reviewed-on: https://dart-review.googlesource.com/c/85399
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-27 15:56:46 +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
Konstantin Shcheglov 61a1793574 Issue 35162. Include SDK version constraint into AnalysisOptions.
So, analysis result signatures depend on it and recomputed when it
is changed.

Also, change analysis server to update analysis options not only
when analysis_options.yaml is changed, but also when pubspec.yaml
is changed.

R=brianwilkerson@google.com, paulberry@google.com

Bug: https://github.com/dart-lang/sdk/issues/35162
Change-Id: If4b937c26212d3da74ac7125eb2c6f70dbcb1793
Reviewed-on: https://dart-review.googlesource.com/c/85405
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-11-27 00:57:27 +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 4a1983a1a8 Fix some TODOs and remove redundant test
Change-Id: Id2f45d5bb139ff3828de5fa916a863401bb156ed
Reviewed-on: https://dart-review.googlesource.com/c/85173
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-26 10:26:00 +00:00
Brian Wilkerson 67472e59fb Remove an unused error code and the fix associated with it
Change-Id: I5118cea64a9c687e7ebd102a09cbfbaf467d1e96
Reviewed-on: https://dart-review.googlesource.com/c/85320
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-25 19:11:46 +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
Danny Tuppeny df5ed5458f Move some LSP file-handling code into the file handler
Change-Id: Ifeb37838dbe7a0315a2bc7ecd92817fe36ecec13
Reviewed-on: https://dart-review.googlesource.com/c/85171
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-22 17:50:51 +00:00
Danny Tuppeny 1eccfb864a Single handler per LSP message
Also extract some boilerplate from LSP message handlers - the MessageHandler class is now responsible for deserialising the params based on the type arg and fromJson method it was provided by the subclass.

Change-Id: Iba7b88bc62c21959668112b7db85767ab98b611b
Reviewed-on: https://dart-review.googlesource.com/c/85106
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-22 08:46:10 +00:00
Brian Wilkerson 24482b7514 Display enabled experiments on the status pages
Change-Id: Id3888ad755c658f36c4aa508e8f77d8010ed1b9b
Reviewed-on: https://dart-review.googlesource.com/c/85041
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-21 22:26:33 +00:00
Danny Tuppeny 1ac2251706 Extract state handling from LSP server to separate handlers
Change-Id: Iec52b5159a93071db1750e4ab4fe9b982810bb07
Reviewed-on: https://dart-review.googlesource.com/c/85081
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-21 15:38:55 +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 c8bc0a04c7 Extract common code to shared abstract base class
Change-Id: Ife5483c3c80236164fce12c452ab7d60e6980e92
Reviewed-on: https://dart-review.googlesource.com/c/84907
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-21 08:25:50 +00:00
Brian Wilkerson ae6f534188 Add fixes for SDK violation hint
Change-Id: Icbb41c2e305b45c6abb9ade343d677c2e28895ce
Reviewed-on: https://dart-review.googlesource.com/c/84691
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-11-21 02:19:21 +00:00
Danny Tuppeny 257a6c8d2b Don't send error responses to $/ notifications/requests
The LSP spec says requests/notifications starting $/ can be ignored if they are not understood.

Change-Id: I6c0d011057b2f958c38fa2c4e92a1787944cb8d0
Reviewed-on: https://dart-review.googlesource.com/c/84902
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-20 15:31:16 +00:00
Danny Tuppeny a8c30d89d3 Add basic LSP definition handling
Change-Id: Ife576c648db9a92b119da2dfd71366ca9b9549de
Reviewed-on: https://dart-review.googlesource.com/c/84607
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-20 08:30:39 +00:00
Brian Wilkerson 032bfe0872 Use void rather than Object as a type argument when possible
Change-Id: I275a20e6f58a01adda3be64cf83930cc238beed3
Reviewed-on: https://dart-review.googlesource.com/c/84700
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-19 18:32:31 +00:00
Danny Tuppeny 14688305d4 Basic LSP signature help implementation
Change-Id: Iab985328a3df588faf641435f4ab3a15c9ed3719
Reviewed-on: https://dart-review.googlesource.com/c/84532
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-15 17:16:43 +00:00
Danny Tuppeny f264a67d7f Basic completion support
Change-Id: I59b6b247d5c47cebee6e7b1189838d3db914ae4b
Reviewed-on: https://dart-review.googlesource.com/c/84528
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-15 15:12:16 +00:00
Konstantin Shcheglov da191665aa Issue 34709. Support generic type alias (AKA generic function type alias for now) in outline and completion.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/34709
Change-Id: Ic18d98e07ba0cbd231ded27c4c32533ee013632b
Reviewed-on: https://dart-review.googlesource.com/c/84320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-13 21:20:08 +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 8166908a03 Improve hovers to include the elementDescription
Also remove munging of [types] because it messes with code blocks.

Change-Id: Ieb7cd242db6662c1ee5f983b0d87544cc5e75367
Reviewed-on: https://dart-review.googlesource.com/c/84034
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-13 08:20:47 +00:00
Konstantin Shcheglov 2079620a53 Issue 34733. Expand 'implicit-casts' controlled casts, and deprecate more of 'declaration-casts'.
R=brianwilkerson@google.com, paulberry@google.com

Bug: https://github.com/dart-lang/sdk/issues/34733
Change-Id: Ifda5cbd8cc8d81a7e3ad8133d68c056b869bb588
Reviewed-on: https://dart-review.googlesource.com/c/84122
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-12 21:04:59 +00:00
Brian Wilkerson 51f34ea580 Split up the tests for fixes related to lints
Change-Id: Icb299b43a745f02ecbc11c0421866f112033ca6a
Reviewed-on: https://dart-review.googlesource.com/c/84054
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-12 17:29:56 +00:00
Danny Tuppeny 5147c0c6f1 Fix handling of UTF8 characters in LSP packets
`.length` on a string was not the correct thing to know how many bytes when encoded as UTF8.

Change-Id: I526eb4efd9a70e9daae92d1c16843136fd6ec1d1
Reviewed-on: https://dart-review.googlesource.com/c/84032
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-12 17:02:15 +00:00
Paul Berry 3ae0dcaa18 Merge commit '5ef1465c55be601f601e1f565c9b9d2f94d76aff' into analyzer
Conflicts:
	pkg/analysis_server/lib/src/analysis_server.dart
	pkg/analysis_server/lib/src/server/driver.dart
2018-11-12 06:39:27 -08:00
Dan Rubel d502ba6014 Add new analysis_server_client handlers
* Make the NotificationHandler a mixin
  and move it to /lib/handlers

* Add new notification handler mixins
  - AnalysisCompleteHandler
  - ServerConnectedHandler

* Add Server.stop method

.. and address comments in
https://dart-review.googlesource.com/c/sdk/+/83180

Change-Id: I94ba657f20520ae4bb0e479a014c11509eeb9d2c
Reviewed-on: https://dart-review.googlesource.com/c/83520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-08 21:10:06 +00:00
Brian Wilkerson f0f3f445a7 Add a version of getAncestor that matches by type without a closure
Change-Id: Ib10ab78284466b04b47b6480aded9d3535c79b12
Reviewed-on: https://dart-review.googlesource.com/c/83642
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-08 20:43:57 +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 6678d3f47e Add support for hovers
Change-Id: I3403f5979e9d6bc66479fb8736ec4705d7c1b96e
Reviewed-on: https://dart-review.googlesource.com/c/83760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-08 18:26:55 +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