Commit Graph

3080 Commits

Author SHA1 Message Date
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
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
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
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
Konstantin Shcheglov 09435f21fc Update member sorter to support mixins and generic type aliases.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ia417b003321d4b92f92b125a4607634fa6d21206
Reviewed-on: https://dart-review.googlesource.com/c/83464
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-07 19:36:06 +00:00
Brian Wilkerson bb2ecb718d Cleanup deprecation warnings in edit_dartfix
Change-Id: I38708afc62b9085ae70e1e5f73728531e63df82f
Reviewed-on: https://dart-review.googlesource.com/c/82792
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-07 17:16:08 +00:00
Paul Berry be7983e148 Merge commit 'c24073f442e7c7b789894ad8210aff8accc36702' into analyzer 2018-11-07 07:37:12 -08:00
Brian Wilkerson 22408c6dee Remove references to previewDart2
Change-Id: Id382dd95d3ae90d483467741b5b6d3dbc6c31ea1
Reviewed-on: https://dart-review.googlesource.com/c/83300
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-07 14:52:37 +00:00
danrubel 7e6a39fd91 Generate analysis server notification handler
... and generate the analysis server protocol version

Change-Id: I585e50cc854d5ae1aa7440a14f856c983bbfc93a
Reviewed-on: https://dart-review.googlesource.com/c/83180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-11-06 23:04:53 +00:00
Paul Berry 2aa4b1a4f4 Convert analysis_server.dart to triple-slash comment style.
Change-Id: I49ca2b705ad0b59d9a01615b6426fc76db99f77b
Reviewed-on: https://dart-review.googlesource.com/c/82948
Auto-Submit: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-06 15:07:13 +00:00
Paul Berry 85d225e3f6 Move parameter context into NodeLintRule and make it required.
This is a breaking change, so the analyzer major version number is
bumped.  However, we don't need to publish a new analyzer yet so we
use a "-dev" version number.

This breaking change requires upgrading to the latest version of the
linter package.

Change-Id: I90637068acee646c41613e7b7f7d66496bb260e9
Reviewed-on: https://dart-review.googlesource.com/c/82946
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-11-05 23:32:47 +00:00
Konstantin Shcheglov 3166d6bf25 Replace ResolvedUnitCache with AnalysisSessionHelper.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ie19de8feaf82e97065d1068d0c1a06bdf3654e1d
Reviewed-on: https://dart-review.googlesource.com/c/82940
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-05 20:49:44 +00:00
Brian Wilkerson 1215f239c8 Remove references to ContentCache from analysis_server
Change-Id: Ie1e107467f639e9a005c7b16055541d235ac38d8
Reviewed-on: https://dart-review.googlesource.com/c/82921
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-05 18:17:57 +00:00
Paul Berry 40dee8da38 Merge commit '11707cab410906df65b72e94fd59b2f51690c9e7' into analyzer 2018-11-05 10:00:59 -08:00
Dan Rubel 40de40f904 Update edit.dartfix to handle InconsistentAnalysisException
Fix https://github.com/dart-lang/sdk/issues/35055

Change-Id: I20e8bd6400fdd5e26573d2e9273025acfa6b0b88
Reviewed-on: https://dart-review.googlesource.com/c/82882
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-11-05 17:28:02 +00:00
Dan Rubel c7e6cdf81c Update RemoveTypeArguments priority for edit.dartfix
Change-Id: I2b3b52916a4eb08a47f40e1adc2ce21985649ba3
Reviewed-on: https://dart-review.googlesource.com/c/82880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-05 16:31:10 +00:00
Brian Wilkerson dff53c12d0 Remove more uses of package:analyzer/analyzer.dart
Change-Id: I4b8abf72994d7a60b09529a740bd16b591813807
Reviewed-on: https://dart-review.googlesource.com/c/82800
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-11-04 19:36:36 +00:00
Konstantin Shcheglov 3f431de188 Implement AnalysisSessionHelper.getElementDeclaration() using AnalysisSession.
Also adds parsedUnit / resolvedUnit to ElementDeclarationResult, because
Analysis Server use case shows that we need them.

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

Change-Id: I845e85f658bec8fdaf3378f879e3d986a0bc01eb
Reviewed-on: https://dart-review.googlesource.com/c/82712
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-02 22:52:49 +00:00
Konstantin Shcheglov 2784473939 Fixes and tests for quick fixes in mixins.
I hit an exception in Analysis Server, so looked at it and related places.

R=brianwilkerson@google.com

Change-Id: Ife9bac50f8ea16aa0a092de0fdbc74c0c1534b23
Reviewed-on: https://dart-review.googlesource.com/c/82700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-02 18:56:49 +00:00