Commit Graph

117 Commits

Author SHA1 Message Date
Brian Wilkerson 12dcfe63bb Start removing extraneous awaits from server
Change-Id: I484227773e98d87c915f6dfe6e320dda1a7b8eaa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144862
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-04-26 23:45:29 +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 f60536c194 Enable slash_for_doc_comments in analysis_server
Change-Id: Id2734d4c9ce591c5746bb9aa55810c78183db38f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135940
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-14 17:17:17 +00:00
Brian Wilkerson 93ebbe2c7a Enable use_function_type_syntax_for_parameters in analysis_server
Change-Id: I93cddc986c23e53557c647befc92d118b3d6ed43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132459
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-19 17:11:11 +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
Mike Fairhurst 942419e6ba [analysis_server] Funnel sendServerErrorNotification through logException
Change-Id: I266a8b3c404da8c9892aa6e1a49e1f1c9bdcf530
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124163
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2019-11-12 21:45:24 +00:00
Konstantin Shcheglov 3124125008 Move Flutter utility methods into a class, which can be instantiated either with regular package:flutter, or with package_flutter_web.
The factory constructors does not yet choose one, will do in a
following CL.

R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/36056
Change-Id: I7fabe9da571ea80ce993d9303217ccd8b085e8a5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95283
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-03-05 05:51:41 +00:00
Brian Wilkerson 47e988b781 Clean up the remaining copyright notices in analysis_server
Change-Id: Iee3110f92ab0f24312ddd1eff407d2229f895321
Reviewed-on: https://dart-review.googlesource.com/c/89101
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-11 15:38:56 +00:00
Konstantin Shcheglov e3c8774543 Add AnalysisSession.analysisContext, stop using AnalysisDriver's AnalysisResult outside the driver.
Change-Id: I63138e002d9e777f51d2d843f7ef2b1f32fed3e0
Reviewed-on: https://dart-review.googlesource.com/c/82529
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-02 14:16:31 +00:00
Brian Wilkerson 978f12c17f Use void in place of Null in analysis_server
Change-Id: Ifef805cb3c0111e237a6147f71a968958d5651e5
Reviewed-on: https://dart-review.googlesource.com/69560
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-08-13 13:16:53 +00:00
Brian Wilkerson 87f753dbd3 Replace some declarations of element with declaredElement
Change-Id: Idd62472b16cccaa98749a510197ec8d0f5053cb1
Reviewed-on: https://dart-review.googlesource.com/67820
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-08-02 16:00:36 +00:00
Brian Wilkerson f6d2c2378a Add awaits in async methods to restore previous semantics
Change-Id: I7711cd878a31df0fb0c92572e2256c0a26923640
Reviewed-on: https://dart-review.googlesource.com/59480
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-06-08 19:58:07 +00:00
Danny Tuppeny 46043004d6 Move folding regions to actual blocks
This puts the region inside the braces; eg. the bit the user would expect to disappear when the region is collapsed.

Bug: https://github.com/dart-lang/sdk/issues/33033
Change-Id: I58b347d2e1582bb4a6a35cf45c17085ea1739816
Reviewed-on: https://dart-review.googlesource.com/54402
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-05-10 07:44:10 +00:00
Danny Tuppeny b73541cffe Add a skeleton for Dart Folding
Only currently adds a single region around Directives.

Bug: https://github.com/dart-lang/sdk/issues/33033
Change-Id: Ibde0400c5815c00b1f94bf592d8cc9eb7cb592cf
Reviewed-on: https://dart-review.googlesource.com/54232
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-05-08 16:59:03 +00:00
Konstantin Shcheglov 402af4db46 Add a new experimental 'flutter' domain and move FLUTTER_OUTLINE there.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I8f829f10a630e38c5a3f1638d077e37832a08daa
Reviewed-on: https://dart-review.googlesource.com/36320
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-23 00:57:55 +00:00
Konstantin Shcheglov 19e6dfe2a9 Send FLUTTER_OUTLINE notification.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I6ba95137eee91ad52cc66b3cd0205411fd0aeaf5
Reviewed-on: https://dart-review.googlesource.com/36180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-22 05:26:59 +00:00
Konstantin Shcheglov 07367d05cd Basic implementation of FlutterOutlineComputer.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I22c96c2a35c086814aace13f0121cc0361f3386f
Reviewed-on: https://dart-review.googlesource.com/36140
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-21 18:12:58 +00:00
Brian Wilkerson b999edf5ee Remove more references to AnalysisContext
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/3003173002 .
2017-08-23 07:53:14 -07:00
Danny Tuppeny 619f2995ab Implement analysis server closing labels (work-in-progress) (#30372)
* Add empty closing labels computer/visitor and tests.

See #30285

* Add initial implementation and test for closing labels.

See #30285

* Add various tests for analyzer closing labels.

See #30285

* Fail tests if errors occur.

Without this the notifications will never come through and the test will time out. This causes them to fail right away on errors.

See #30285

* Add test and fix for crash that occurred during testing.

See #30285

* Remove unnecessary abs().

See #30285

* Remove question that has been answered (yes).

See #30285

* Remove unnecessary .argumentList on spansManyLines check.

See #30285

* Add test for prefixed import and constructor names.

The behaviour seems like what we want, though need to confirm if this is the best way to do it.

See #30285

* Add additional prefixed tests and another TODO.

See #30285

* Fix method invocations to show full target/name.

See #30285

* Fix constructor invocations to not use toString().

See #30285

* Convert most closing label tests to unit tests.

See #30285
2017-08-09 14:13:47 -07:00
Konstantin Shcheglov 78f78feaf8 Don't include *.yaml files in 'analysis.analyzedFiles' notification.
R=brianwilkerson@google.com, jwren@google.com
BUG=

Review-Url: https://codereview.chromium.org/2980653002 .
2017-07-11 14:19:15 -07:00
Konstantin Shcheglov b3fe985371 Use AnalysisDriver.getCachedResult() for 'implemented' notification.
In general case we cannot use getResult() in this notification.
We generate these notifications after analysis is complete in scheduler.
But if there is no cached result, getResult() will schedule analysis.
So, we might get into a loop.

In practice this worked, because IDEA always makes files priority,
so their results cached, and then subscribes for notifications.
But in general case we need this protection.

This also means that the 'implemented' notification works (and will
work) only for priority files.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2965533002 .
2017-06-29 09:57:20 -07:00
Brian Wilkerson 55d735911b Remove the unused operations queue
R=devoncarew@google.com

Review-Url: https://codereview.chromium.org/2957643002 .
2017-06-23 09:04:13 -07:00
Brian Wilkerson a420a1fbb5 Remove more dead code from analysis server
R=devoncarew@google.com

Review-Url: https://codereview.chromium.org/2949103003 .
2017-06-22 08:21:03 -07:00
Brian Wilkerson e0216fef7f Remove ability to disable new analysis driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2937323003 .
2017-06-19 08:13:14 -07:00
Konstantin Shcheglov 9600dab0e0 Enable 'analysis.implemented' with the new analysis driver.
It is not very efficient on large files, but works well enough for small
files. I will work on making it more efficient in following CLs.

R=brianwilkerson@google.com, devoncarew@google.com
BUG= https://github.com/dart-lang/sdk/issues/29113

Review-Url: https://codereview.chromium.org/2942753002 .
2017-06-16 09:13:45 -07:00
Brian Wilkerson a6214b3129 Remove more libraries directives from server
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2894883002 .
2017-05-19 08:42:30 -07:00
Konstantin Shcheglov 44bab19cb3 Implement 'analysis.analyzedFiles' notification with the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2612723002 .
2017-01-04 07:12:47 -08:00
Konstantin Shcheglov 0728e4ee70 Implement 'analysis.getErrors' for the new driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2566013002 .
2016-12-11 15:27:57 -08:00
Paul Berry ae6fd961a1 Prepare for decoupling analyzer ASTs from element model.
This CL creates top level accessor functions which may be used to map from AST data structures to their corresponding elements and types, and begins using those accessor functions throughout the SDK.  It also adds empty interfaces ResolutionTarget and ResolutionType, which are implemented by Element and DartType respectively.

In a future CL, I will change the types stored in the AST to ResolutionTarget and ResolutionType, rather than specific element types; this will decouple the ASTs from the element model.  The presence of the accessor functions will allow clients to continue accessing elements and types in a type-safe way.

R=asgerf@google.com, brianwilkerson@google.com, scheglov@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/2551023005 .
2016-12-07 11:08:14 -08:00
Konstantin Shcheglov ab0a8e775f Use single unit/node/element.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2525693002 .
2016-11-22 09:13:31 -08:00
Konstantin Shcheglov ef015221b1 Catch exceptions while preparing analysis.implemented notification.
This notification is sent often, and uses index and search engine. We
have several exceptions in internal logs, and all there exceptions are
fatal by default. It seems too harsh to shutdown the server because of
a missing notification.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2376493002 .
2016-09-26 12:54:33 -07:00
Brian Wilkerson ecc84b26a4 Break up another large file
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2342733002 .
2016-09-15 07:49:27 -07:00
Konstantin Shcheglov f096f7b985 Flush results when contexts are made idle.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2297343002 .
2016-08-31 14:03:25 -07:00
Konstantin Shcheglov f8f4228728 Revert "Flush AST results for source outside of the analysis roots."
This reverts commit b115309531.

Revert "Use FlushTargetFilter to pre-filter targets before checking their results."

This reverts commit 2e24662c06.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2298043002 .
2016-08-30 19:55:10 -07:00
Konstantin Shcheglov 2e24662c06 Use FlushTargetFilter to pre-filter targets before checking their results.
This helps to reduce number of checks, so makes flushing faster.
In non-incremental changes it gives 0.32% -> 0.11%.
In incremental changes it gives 10% -> 2.6%.

We still pass both target and result into the second filter for
convenience, e.g. to print them both without need to remember the
current target in a local variable.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2267273004 .
2016-08-24 09:44:06 -07:00
Konstantin Shcheglov b115309531 Flush AST results for source outside of the analysis roots.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2271803002 .
2016-08-23 14:53:51 -07:00
Konstantin Shcheglov ed887c09d1 Validate cache consistency asynchronously. Compute modification times of physical files in a separate isolate.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2132073003 .
2016-07-08 15:01:05 -07:00
Brian Wilkerson 7a9b2a3133 Use null aware operators to clean up code
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1941793002 .
2016-05-02 08:38:46 -07:00
Konstantin Shcheglov c675ba270f Pass AnalysisOptions into SdkCreator, disable changing afterwards.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1830703002 .
2016-03-23 13:11:49 -07:00
Konstantin Shcheglov bd76934452 Remove old index and search implementations.
Also rename the new implementation files and classes to remove the
'2' suffix.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1801883002 .
2016-03-14 12:19:40 -07:00
Brian Wilkerson 7d72c6e1f5 Deprecate the generated AST library and clean up imports
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1788223002 .
2016-03-12 08:50:48 -08:00
Konstantin Shcheglov c9e82c7e67 Fill the new index in Analysis Server.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1749333004 .
2016-03-02 14:00:17 -08:00
Brian Wilkerson c4d7f41650 Move folderMap from AnalysisContext to ContextManager
R=paulberry@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1750683002 .
2016-02-29 14:04:46 -08:00
Brian Wilkerson 56fe38f0ab Clean up imports in analysis_server and analyzer_cli (and one missed in analyzer)
R=paulberry@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1527793003 .
2015-12-14 19:31:46 -08:00
pq 62656833d4 Wraps up the server-side of the 'Allow a user to configure which hints are "fatal"' ask (#24452).
* migrates error filtering from a predicate to a process that can customize severities.
* moves filtering/processing from the `dart` task into the `getErrors` request and the errors notification.

See: https://github.com/dart-lang/sdk/issues/24452

(Pending a thumbs-up, support for CLI to follow.)

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1517723002 .
2015-12-10 13:35:11 -08:00
Brian Wilkerson ea3ba0e31f Remove deprecated code
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1502213002 .
2015-12-07 10:24:36 -08:00
Konstantin Shcheglov 5b61845221 Send any logError() information to the IDE.
I have not seen any errors sent so far after several minutes of playing with it.
Adding and removing files does not cause any errors.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1432423004 .
2015-11-12 08:16:24 -08:00
Konstantin Shcheglov f80bd4203d Index Dart CompilationUnit(s) with the correct context.
We should use the context that they belong to, not the context that we got them through.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1410983003 .
2015-10-19 09:59:58 -07:00
Konstantin Shcheglov 03e379de7a Compute Outline.kind/libraryName actually.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/24279

Review URL: https://codereview.chromium.org/1380103005 .
2015-10-01 13:09:38 -07:00
Konstantin Shcheglov 9d48af9ee3 Specification change for the 'libraryName' and 'partOfLibraryName' fields in Outline.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org//1375163003 .
2015-10-01 09:53:20 -07:00