Commit Graph

721 Commits

Author SHA1 Message Date
Danny Tuppeny 5112f526cf [Analyzer] Add optional support for codeOffset/codeLength on navigation targets
Change-Id: Ib328c408d590398d30bd341603781f68f2fd1402
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161166
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-09-02 20:51:27 +00:00
Mike Fairhurst 1134a0f17c [analysis_server] Remove unused dart:async imports
Change-Id: I764ee78cb9e31bdb3abaa36ca4754e1fed180311
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161447
Auto-Submit: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-09-02 17:29:52 +00:00
Paul Berry b7d139a626 External variable support: add a notion of external top level variables to the AST and element model.
In follow-up CLs I will update error reporting logic.

Change-Id: Iee42088beffee3915a2ef6a4c8cb5c1031535d4d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158149
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-08-12 15:59:24 +00:00
Paul Berry d4e4abdef6 External field support: add a notion of external fields to the AST and element model.
In follow-up CLs I will update error reporting logic.

Change-Id: Id07b861aa117b93e0c869ad0b52c048085706ee6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157801
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-08-10 21:54:54 +00:00
Danny Tuppeny 61e0098c92 Add custom LSP method to force reanalyze
Change-Id: I7d27654ecb68cf674d6521cd6325256a5fabf86c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157486
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-08-06 14:51:19 +00:00
Paul Berry b5a3292260 Abstract field support: add a notion of abstract fields to the AST and element model.
In a follow-up CL I will update error reporting logic.

Change-Id: I6fd2916c24a531b1f41bd2872301ffec1fdb8722
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157382
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-08-06 02:19:46 +00:00
Brian Wilkerson ac949711ea Add the tool used to compute widget counts for flutter packages
Change-Id: I2ab98dfd5249828c708edd30ccbe2dc0d1d141e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157081
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-08-04 22:18:49 +00:00
Konstantin Shcheglov dfb3720cda Changes to analysis_server/ to be compatible with the breaking changes to analyzer/.
Change-Id: I606072798633601d78f38c0035b579d93875ef3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156601
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-07-31 17:04:58 +00:00
Danny Tuppeny 6762f2294c Tweak parser to handle LSP 3.16 spec
Change-Id: I53ef27f4b9dc9c4f6a8ff54e116dd3d2a9faf65c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156506
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-30 15:49:28 +00:00
Konstantin Shcheglov dfe1d9b682 Disable OverrideContributor for Cider.
We see that it is slow, about 600ms, at least in some cases.

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

Change-Id: I5c1170a84c06aa9c28000c03fbc138d2909e7f2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155504
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-22 22:23:19 +00:00
Danny Tuppeny e7f861023c Add dart.lineLength setting to the LSP docs
Change-Id: Ic517979497a0755683a8b5f2335ee75d103b5220
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154327
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-07-14 18:13:30 +00:00
Konstantin Shcheglov c3655ed435 Remove FolderBasedDartSdk.defaultSdkDirectory() and getSdkProperty().
It is up to the higher level clients to decide how to find SDK.

It is not API, and is not referenced internally, so we can land it
without going through breaking changes.

Change-Id: Id428519fa9bb3c38368f095c0f358e07f65c45b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154081
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-07-14 18:09:30 +00:00
Konstantin Shcheglov 90ce990409 Simplify Flutter support to a single instance.
Change-Id: I90813c4e01694510971c4ce9cf96a4a3380a2923
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153952
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-07-10 17:21:24 +00:00
pq 3d5df93fb1 bulk fix protocol
Change-Id: Id8505d5ad6f0f3d1c5289ab12d4932c6174f72e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153623
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-07-10 14:20:07 +00:00
Jaime Wren 9a4e2b1514 Add an additional completion metric into completion_metrics.dart: 'use old vs new relevance rank comparison'
Change-Id: I21eb1447dd6c833870158717031a01d7e8f253c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153485
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-09 17:19:02 +00:00
Danny Tuppeny c4a2efd6e7 Switch all generated LSP classes to use named constructor arguments
Change-Id: I111b58fa5d04314247d5f92650491cdeef6bd4a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153841
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-07-09 17:18:07 +00:00
Danny Tuppeny 6db0396c83 Regenerate code from v3.15 LSP spec
Commit v3.15 of LSP spec + regen generated code

Change-Id: Ic0823063791900f347e1ff1f2242a6e4e6ed8ca6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153778
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-09 17:18:07 +00:00
Danny Tuppeny d86fa966a9 Tweaks to be able to parse v3.15 spec
Change-Id: Ifdb8696246b6893b743754dab5344d5939550a10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153776
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-09 17:18:07 +00:00
Jaime Wren 431b57cbbb Add an additional category into completion_metrics.dart: parameter references
Change-Id: Ifed40f0eb0472894be92a41f105a6dfb36bcbb36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153367
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-07-06 22:39:39 +00:00
Konstantin Shcheglov 326f7b4a8f Remove DartSdk.useSummary.
Initial:  https://dart-review.googlesource.com/c/sdk/+/149495
Reverted: https://dart-review.googlesource.com/c/sdk/+/149687
Change-Id: Ibd3f1af1aef83adc35f77cfbda66e07c5ae99922
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153241
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-07-03 15:56:41 +00:00
Jaime Wren fffa2bd30c Small change from https://dart-review.googlesource.com/c/sdk/+/153020 that Gerrit did not successfully patch before landing the PR
Change-Id: Iac0907d353d7c39c84bbe5c9364c7888e481b694
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152904
Auto-Submit: Jaime Wren <jwren@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-07-01 19:34:24 +00:00
Jaime Wren b08ade3748 completion_metrics.dart change- add an additional group, local references, when printing out the output
Change-Id: I38601eb748d0247413725b62718bcabdb1e3e6fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153020
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-07-01 18:36:14 +00:00
Brian Wilkerson 5d064d2748 Add and use a feature based on the distance to a local variable declaration
Change-Id: Id89e2e9bb417fa62095d4e81f9721a8d3c0893ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152901
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-07-01 18:19:44 +00:00
Eric Dallo 6d3928554c Add lsp-dart to lsp_spec README
https://emacs-lsp.github.io/lsp-dart

Closes https://github.com/dart-lang/sdk/pull/42514
https://github.com/dart-lang/sdk/pull/42514

GitOrigin-RevId: cfa8edf358669c3ec2324a726a848fbc548bb6a3
Change-Id: Icaa90cdbb462b51fae6c186fe7626ca6168b9599
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152820
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-07-01 13:15:22 +00:00
Konstantin Shcheglov c4503f0074 Use OperationPerformance to track performance in CompletionPerformance.
R=brianwilkerson@google.com

Change-Id: I50158512020be87b3c51363ed2e503c3df3cfaae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-06-30 17:44:54 +00:00
Jaime Wren 79e54facb8 Add a new category in completion_metrics.dart when gathering and printing the data: type references.
Change-Id: I6a30195a21e4c2b6886e48d5360f11bd2d200467
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-06-27 00:36:08 +00:00
Jaime Wren ccd2af6402 This new tool resolves and evaluates field declarations where the type isn't specified, but is known when the code is resolved, i.e. cases of var i = 1;.
These cases are collected sorted and printed back out to help us improve the context type algorithm, that is we may choose to in completion locations 'var i = ^', to assume that the user will be entering an int type.

Change-Id: Ia3e4663b2cf1614935ff49a4ab10299db0dc909d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151783
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-23 20:59:03 +00:00
Brian Wilkerson b95538cff1 Generate tables of keyword relevance
Change-Id: Ic0f07561bd4b4cd81a3b511bac31b0f7b4906319
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151881
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-06-23 18:57:03 +00:00
Konstantin Shcheglov 71ddad82e4 Disable UriContributor for Cider.
There are two reasons to disable it.

1. This contributor talks to the file system, and for Cider this
   operation is too slow.

2. It just does not work. We need `SourceFactory` for it, and the
   way we get it is not compatible with the Cider's `AnalysisSession`
   mock.


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

Change-Id: I652c4f438dbab2a9fa220878ff09d47c14434cd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151806
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-06-18 23:29:03 +00:00
Danny Tuppeny 7f8ec737db Add a note to docs about enumerations being extended
Change-Id: Ia5d6017018b812777b35641c2ee5a4bca9aa9501
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151527
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-06-17 19:32:50 +00:00
Danny Tuppeny f0e1f32c87 Add support for folding if/else/elseif blocks
Change-Id: I3cbf1f282ee59c577c6ba912e957f838e827fd3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-17 19:32:50 +00:00
Danny Tuppeny b2f755ac07 Add a note about passing client-id/client-version to LSP doc
Change-Id: Ic82e5915e512c78c99b963bbaa74aaed42374726
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151506
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-06-17 15:06:54 +00:00
Brian Wilkerson bd3b3299cb Correct an abbreviation
Change-Id: I7424cd587c87f1256237de1cf913b9b0b31104f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151341
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-06-15 22:16:52 +00:00
Jaime Wren 920ddae937 Re-write of the computation of the context type for code completion.  Instead of passing a parent and child node, a parent node with an offset is passed.  The primary purpose of this change was to fix a bug with argument lists which is close to being fixed.
I will follow up with some additional fixes and tests for map and list literals.

Change-Id: I1a26e8f900dcf13402385a49e8f3538c5d1b39df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151030
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-15 18:19:42 +00:00
Danny Tuppeny 3b243a0c30 Recurse through lists/maps when generating hash codes in LSP types
Change-Id: I06117fe33c7bfb8553e9930afbf7e3bdc86c6032
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151230
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-15 18:09:02 +00:00
Brian Wilkerson 3a31bc2fd4 Update relevance metrics to compute element kind probabilities based on whether type parameters are in scope
Change-Id: I1b85f7723c0eed0a0287dc794daecbd6acbc162b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151060
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-06-12 16:28:36 +00:00
Jaime Wren 88c3d26d7f Null check fix in completion metrics
Change-Id: I0941e0ecd404fe307ab823ea76f947e34ab720da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150763
Auto-Submit: Jaime Wren <jwren@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-10 16:37:26 +00:00
Brian Wilkerson b81fd7af4a Update printing of per-location mrr values in completion_metrics
The values are now only printed when `verbose` is enabled, and are
sorted based on how mig an impact completions in those locations are
impacting the total.

Change-Id: I913f82e57cf0a97d3465b0b41d9431ca3cf56e30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150262
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-06-05 17:13:34 +00:00
Danny Tuppeny f92a7d2669 Add Plugin column to LSP status table
Change-Id: I02d16133b898bdfd1ed781ad4aed7748700f6fb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150027
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-06-04 15:39:37 +00:00
Paul Berry 930cae0f13 Revert "Remove DartSdk.useSummary."
This reverts commit a2c3ecabce.

Reason for revert: Breaking change to de facto API

Original change's description:
> Remove DartSdk.useSummary.
> 
> R=​brianwilkerson@google.com
> 
> Change-Id: Ifa851f4af47a973d65c528c6d07fcac0a515134b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149495
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>

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

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

Change-Id: I9998bedb74ea940371f18ac7dce42b2f5dcc3b98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149687
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-06-02 15:20:32 +00:00
Danny Tuppeny 44c7650a10 Enable/disable and register/unregister LSP formatter based on client settings
Change-Id: Ida81ce80795f79feaaa0e4590c19bc1bc24929a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149591
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-06-02 14:33:51 +00:00
Danny Tuppeny dd7589e5ce Add LSP support for client-side configuration
Change-Id: I27aa706fd29da00d21fc4177cd455d8259cf9339
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149590
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-02 14:33:51 +00:00
Danny Tuppeny 7accf5ecfc Improve LSP spec regex to catch didChangeConfiguration method
Change-Id: I8a377bd79b86b59fce0f16c424c372127ff63433
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149584
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-06-02 14:33:51 +00:00
Konstantin Shcheglov a2c3ecabce Remove DartSdk.useSummary.
R=brianwilkerson@google.com

Change-Id: Ifa851f4af47a973d65c528c6d07fcac0a515134b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149495
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-05-30 19:07:32 +00:00
Konstantin Shcheglov a56368926e Remove support for 'packageRoots' in DAS.
Bug: https://github.com/dart-lang/sdk/issues/41197
Change-Id: I61929a5853b4e353e3a758fe5088f2ff2c1fda2d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-05-28 22:57:32 +00:00
Brian Wilkerson b7364da5fd Fix the computation of completion location in OpType
There was a bug earlier in which we were attempting to use a relevance
table (MethodInvocation_arguments) that was not generated. I thought
the bug was that the table wasn't being generated, so I attempted to
generate the table (in relevance_table_generator). But the table can't
be generated and the real bug was that the wrong contextLocation was
being generated when computing the OpType. So I backed out the earlier
change and updated the generation to generate the right location.

Change-Id: Ifbd2c6c3e11e1e98887108be7eb6d90e90452446
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149381
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-05-28 21:23:01 +00:00
Brian Wilkerson 8dcd9385c5 Compute mmrs at a finer granularity
Change-Id: I6f6e3d415591cb52fd5ae409a85d5481aff26849
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149360
Reviewed-by: Jaime Wren <jwren@google.com>
2020-05-28 18:24:42 +00:00
Brian Wilkerson cbc6de6c2d Update the relevance metrics tool
This adds tracking of how often type parameters are declared and how
often import prefixes are used.

It also removes the code to convert to and from JSON because we don't
need it.

Change-Id: I7f3b19e9f82bd8aa1b327797726839ff63837795
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149121
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-05-27 16:44:50 +00:00
Konstantin Shcheglov 279024d823 Deprecate InstanceCreationExpression.staticElement
Change-Id: I3c2de8ce22944963418d543b887720db15badd0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148981
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-05-26 22:56:42 +00:00
Konstantin Shcheglov 80e9667f2c Fix unused imports.
R=brianwilkerson@google.com

Change-Id: I02f47632bef3a2e601f7f471c7149829e06844f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148963
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-05-25 16:58:38 +00:00