122 Commits

Author SHA1 Message Date
Danny Tuppeny f024b20e9a [analysis_server] Fix filters + resource type for Move to File in Interactive Forms
1. The `filters` field is specified/implemented as just file extensions, not patterns
2. We need `type: FileType.Regular` to stop you selecting directories as the target for the move

Change-Id: I39397ff844c91bbbfbbd8c070bc29ce2db371d73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508921
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-06-04 06:54:49 -07:00
Danny Tuppeny c0b424f28f [analysis_server] Update interactive forms for latest spec changes
This updates the interactive forms classes to reflect recent changes.

Previously, we would only send back the outstanding fields to the client, and it would only provide answers for the same.

Now, the server will always send all fields to the client, and the client will always provide all answers. Answers are looked up IDs (a new field on `FormField`, and `FormAnswer` which wraps the answer) rather than rely on indexes.

Fields can also now be required.

Change-Id: If4aa1f9a18fa873e83cb0ea1fd74c2e42cd2fa1f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508103
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2026-06-01 11:46:51 -07:00
Paul Berry afcfbbeba8 Migrate developer experience packages to new constructor decl syntax.
(Part of https://github.com/dart-lang/sdk/issues/63288)

This change migrates the packages owned by the developer experience
team to use the new constructor declaration syntax, described in
https://github.com/dart-lang/language/blob/main/accepted/future-releases/primary-constructors/feature-specification.md#abbreviations-of-in-body-constructor-declarations.

This change was performed in an automated fashion, by (a) bumping the
packages' SDK constraints to `3.13.0-0`, (b) enabling the lints
`unnecessary_type_name_in_constructor` and
`unnecessary_const_in_enum_constructor`, (c) fixing the resulting lint
failures using `dart fix`, and then (d) reformatting the affected
files.

To ease code review, I've reverted unrelated formatting changes.

Since this change requires bumping SDK constaints to `3.13.0-0`, it
was only performed on packages that are *not* published on
pub. (Packages that *are* published on pub should remain on lower
language versions until at least after the stable version of 3.13 is
released, so that we don't block users on the stable channel from
receiving updates to those packages.)

Change-Id: Ibb4daebafd239da58251e838ea6a3f336a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505046
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
2026-05-27 14:52:58 -07:00
Konstantin Shcheglov d6c87cc934 Always verify constants in LspEnum.
Change-Id: I4d62eacbf97c5f83e0eab378bc7d239ab934e6b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505623
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2026-05-22 08:59:05 -07:00
Danny Tuppeny 026043d9ed [analysis_server] Add helper functions to support flags enums
In the new interactive forms, some of the enums can be combined (eg. `FileExistence.New | FileExisting.Existing`). This adds a flag that produces some helper functions for `hasFlag()` and `combine()`.

These helpers are not used outside of tests in this CL but will be used in a future CL (which I'm trying to avoid getting too big to simplify reviewing).

Change-Id: I1b5f06f05d96781c4bc6a246a0a9309a786c1987
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505320
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2026-05-21 13:06:43 -07:00
Danny Tuppeny bb220724dc [analysis_server] Convert LSP spec tests to test_reflective_loader
No functional changes, this just converts the tests from group/test to test_reflective_loader to match other tests.

Changing the group()/test() calls to methods results in the tests being re-sorted by member name.

To possibly simplify reviewing, I've pushed this to Gerrit as two patch sets:

- PS1: does the conversion but includes index numbers in each test to preserve the order
- PS2: removes the index numbers and re-orders the tests

Change-Id: I72ebe3d3066b181a77052bec5082e4bd34066939
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504580
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2026-05-20 13:05:22 -07:00
Danny Tuppeny 0888111999 [analysis_server] Add protocol classes for new interactive forms
Change-Id: Iefb251c2a4982bf4118430e0f2885f248e1b5a57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504540
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-05-19 12:23:39 -07:00
Danny Tuppeny ddeb964d80 [analysis_server] Handle some reserved names ("default", "new") in LSP codegen
Both of these names are used in the JSON in the Go-spec'd refactoring support, so we need to map them to new names.

We had some existing code for mapping some kinds of names (like enums), but not for JSON fields in interface classes.

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

Change-Id: Ic223a783be9170774444844bb1934a3733ddf446
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504261
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2026-05-19 12:12:02 -07:00
Danny Tuppeny 11b1da577f [analysis_server] Handle URIs/filePaths separately in log normalization/replay
For posix paths, replacing the file path during normalization and then swapping it back later works for both paths and URIs, because a file URI just contains the file path verbatim:

file:///foo/bar/baz

However that's not the case for Windows:

C:\foo\bar\baz
file:///c:/foo/bar/baz

So when normalizing, we need to know if we normalized a URI or a file path, so that we can reverse it later.

With this change, we'll use `{{workspaceFolder-0}}` for the URI, and `{{workspaceFolder-0:filePath}}` for the file path. Then when reversing, we can easily put the correct one back.

This also updates the log replace/scenarios to use the LogNormalizer to perform the denormalization so they don't have to have duplicated logic about what to restore.

I've also updated the existing committed scenarios (EDIT: moved this to a separate CL because Gerrit is falling over) - although even with those changes, they all fail for different reasons (invalid git hashes, mismatches in expected vs actual requests) so I think there is still more work to do here.

Fixes https://github.com/dart-lang/sdk/issues/63330

Change-Id: Ib4c4aabe2c7c0d089bd620bdf00de37acde25f52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/501600
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2026-05-07 10:03:24 -07:00
Jake Macdonald f904d1ebb2 Add custom message equality class to support ignoring certain map keys, skipping id checks, and supporting future customization.
Change-Id: I8da7c1ec4e6150ca699e5916b1d4ed9308c00bbb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/472720
Auto-Submit: Jake Macdonald <jakemac@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2026-01-15 09:20:12 -08:00
Danny Tuppeny b5b452230c [analysis_server] Update toJson() methods to handle unions
Previously, the result of calling `toJson()` could still include some classes (like `List` and `EitherX<>` unions). This didn't cause issues because `jsonEncode()` would handle those types anyway (calling `toJson()` recursively), however changes to support the log replay are looking inside the returned Map and should see consistent types.

Change-Id: Ie52a7251ee10579de8ce605584feb82abc15eb8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/472900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2026-01-14 11:26:20 -08:00
Sam Rawlins 33f664940a Bump DAS to use Dart SDK 3.9.0
Change-Id: I04bc285d822a657adb5573c6de3eb38655ab0fcd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/448232
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-09-03 12:56:29 -07:00
Danny Tuppeny 9b71817072 [analysis_server] Fix duplicate reporting of some LSP type parsing errors
Parse errors for spec types were being reported twice - once by the containing object (in canParse()), and once by the nested canParse() call for the nested type.

This skips reporting the error for nested calls to a canParse() method, which will always report the error itself.

Change-Id: I03e4a9638fd6a3fc77eac918f6fd16def93327d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404105
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-14 08:56:41 -08:00
Danny Tuppeny 613bfa673f [analysis_server] Add a custom LSP handler to fetch editable arguments for the invocation at a position
This currently only supports int, double, boolean, string.

Change-Id: I236db8594907d28dc5901a384fbafdb34f243528
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/394160
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
2024-11-11 15:38:42 +00:00
Sam Rawlins fbf331e0dd DAS: reformat source code with tall-style
Change-Id: I42b4a44fd6a2197e499e8623274b3cd1a4b5556f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/394003
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-11-06 23:04:00 +00:00
Danny Tuppeny 2bd91e8e58 [analysis_server] Rename some LSP types to match upcoming LSP 3.18
In the upcoming LSP 3.18 spec, many types that were previously inline literal types with no names (that resulted in us auto-generating names) have been made real types with names.

In order to reduce the size of the change when LSP 3.18 arrives, this change renames some of our existing types to match the new names that they will get with LSP 3.18.

There are no functional changes here, I simple added the names to the rename list (removing any redundant values that were previously being renamed differently), regenerated the code, and then updated any remaining references (in non-generated code) to those types to match.

Change-Id: Ic556ce6e52ba94a8d42099371be18288230cd5ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389160
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2024-10-10 15:08:41 +00:00
Danny Tuppeny da414c2957 [analysis_server] Allow passing a DTD URI to the analysis server so it can provide LSP functionality to DTD clients
This adds a new request `dart/connectToDtd` that lets a client pass a DTD URI to the server. The server will connect to DTD and provide a subset of LSP methods (those that are currently available over LSP-Over-Legacy, minus the `connectToDtd` method itself) to DTD clients.

This works for both LSP and Legacy servers, and the shared tests run against both (where for legacy, the `dart/connectToDtd` request uses the LSP-over-Legacy support).

This is not currently behind a flag, however it won't do much on its own because no clients will make this request. Once we're happy the functioanlity is good we can either agree an SDK version number for IDEs to gate calling this method on, or we can expose a flag in server capabilities (and some equiv for legacy) so the client knows the functionality is available.

Change-Id: I911d37745a1b2685249dd88e4b152c3196ba627c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379303
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
2024-08-22 20:43:41 +00:00
Konstantin Shcheglov 5c07c89a35 Enable 'unnecessary_final' in analysis_server/.
Change-Id: I71ee934b915d4aff924cf5925f87bcc9adc6c015
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362901
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-04-16 20:04:15 +00:00
Danny Tuppeny df3d7e339d [analysis_server] Add the ability for the "dart fix" prompt to use in-editor application of all fixes
This is currently behind an `initializationOption` supplied by the client (so that in the short-term we can control this behaviour without SDK changes, for example deciding to enable this in the next stable without having to decide before the branch).

When conditions are met (the client flag, and applyEdit/changeAnnotations) instead of showing a prompt pointing the user to the website to learn about "dart fix" give buttons for running them in-editor. An example of how the prompt looks is here:

https://github.com/Dart-Code/Dart-Code/issues/5022#issuecomment-1991562705

Initially, the new commands and this client flag will be gated on an experimental flag to allow wider testing before it starts showing up.

Change-Id: I64254162e8d146ebf4075bade37b2efef76e11c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357120
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2024-03-12 17:15:17 +00:00
Konstantin Shcheglov 8968e5500a CQ. Enable avoid_redundant_argument_values in analysis_server/
Change-Id: If9c09f81bdbac890553573a8491ca27cb4f22dd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353805
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-26 19:51:41 +00:00
Danny Tuppeny 23e1437f6a [analysis_server] Update generated code to match latest spec
This should have been a small change to keep us in-sync with small changes so when there are bigger changes (LSP 3.18.0) the change is less noisy.

However, it turns out the meta model is built from the latest version always, so it includes 3.18.0 proposed features.

So this change not only regenerates the code with the latest spec, it also adds some handling to exclude any types (and methods) marked as proposed.

It also includes a few minor fixes to things like re-wrapping of comments where there are references.

So, it should still essentially be a non-functional change, but the CL isn't as small as planned because of the cleanup.

- The lsp_meta_model.json file is downloaded and not changes I've made
- The protocol_generated.dart file is the output of the code-gen
- All other files are changes I made manually

Change-Id: I6380f86848d2799cf94d58a419ace0bf0d5a35ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/340040
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-12-05 19:58:47 +00:00
Danny Tuppeny a18a24c16c [analysis_server] Update + test for LSP readme being up-to-date with implemented methods
Change-Id: I4c25da38da937d76c4a1b1c9ba1e6318f16c1046
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/333400
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2023-11-02 20:59:20 +00:00
Alexander Thomas 49f4c5f94a [analysis_server] Move language server protocol to third_party
Bug: b/286184681
Change-Id: Iabb9070e354f85d29bb94dee4bdd52a0cf664c94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/326643
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2023-10-10 07:48:30 +00:00
Sam Rawlins 283dad4ddc analysis_server: Enforce single quotes preference
Change-Id: I553befc2c45e66bfc569004d810b4e0a958d4baa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325544
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2023-09-13 17:48:22 +00:00
Danny Tuppeny d75a4e162e [analysis_server] Update LSP generated classes to latest published version of the spec
No functional changes here but there have been some refactors inside the meta model that required some minor tweaks (URI moved from a type alias to string to a spec-defined base type).

I also improved the handling of some type references in the comments we bring in so they're clickable in more places.

Change-Id: I7c725d01b6d7bc0925979b8118dbfd8952f78724
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/297482
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-04-24 15:09:20 +00:00
Sam Rawlins f46c9afc12 [analysis_server] Add type arguments to remaining raw types
The Maps are all JSON, so they become `Map<Object?, Object?>`.

Most other types get a `Object` or `Object?` type argument, and a
few also get `dynamic`.

Change-Id: I097318defed55360b5b0d910bd2d085a121e97b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287673
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-03-16 20:37:57 +00:00
Sam Rawlins 16e935ebad analysis_server: Prefer type annotations over raw types in benchmark/, tool/
Change-Id: I2f0c8bfd484f5aee46395fa86cd3cfabda7c0148
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/286204
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-03-01 20:40:43 +00:00
Danny Tuppeny b3b2a1cebf [analysis_server] Change LSP types to use Uri types instead of Strings
This requires some tweaks to to/from JSON code, and some handling for Maps that previously could be serialised directly but now may contain `Uri`s in keys and need to be converted to strings explicitly (since Uri has no toJson method).

Change-Id: I61358d8198ac1da322fae98d6c40747ad08754b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258927
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-14 18:58:44 +00:00
Danny Tuppeny cd43f3d08c [analysis_server] Use generated typedefs for LSP code
Change-Id: I242413db35b22d01965aa8ecf9851e47982ea41d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-16 22:02:00 +00:00
Danny Tuppeny b46a2d3039 [analysis_server] Preserve type aliases from the LSP spec as typedefs in generated code
+ improve the use of LSPAny/LSPObject where

LSPAny = anything, including null or undefined
LSPObject = any object (equiv of non-null Map<String, Object?>)

Change-Id: I335b299aad8e58b1cb4ee33cf27dc0dd887ec916
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248781
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-16 14:15:41 +00:00
Ahmed Ashour 85700570f6 Fix typos
Fixes #49241

TEST=ci

Change-Id: I6117bf816fc8c4613cce66927f952fef75632725
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248120
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-15 11:08:28 +00:00
Danny Tuppeny 7df87288d8 [analysis_server] Update + simplify LSP methods table
Change-Id: Ia89e4bf2b65effe7ea98bd0081873f6a749eade6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248145
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-14 17:28:32 +00:00
Danny Tuppeny 225291c803 [analysis_server] Improve naming of LSP codegen types
Change-Id: I51f97c5a7bfdbc1fb420c7d59855efd2f9f4b2f7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247381
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-06 19:53:48 +00:00
Danny Tuppeny 06ee6405e6 [analysis_server] Drop Token/TokenTypes from LSP codegen
Change-Id: I8290f3aa94fe3d44ba5b0ce6aee813b15db7ec86
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-06 17:56:18 +00:00
Danny Tuppeny ab9a9fe9c0 [analysis_server] Simplify documentation comments in LSP codegen
Change-Id: Ifb808331ea3bcec5b292ed245811102d6374e71d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247342
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-06 15:49:18 +00:00
Danny Tuppeny b05b832a2e [analysis_server] Remove/rename code from legacy LSP spec/parsing
Change-Id: I72e9e146b4961c7757c2885bc109fd1e43258137
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247341
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-06-06 15:00:28 +00:00
Danny Tuppeny 086727ee6f [analysis_server] Migrate from using Markdown/TypeScript spec for LSP types to JSON model
Change-Id: I58dbbbee48febc45304b27a95fedfef289479265
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247340
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-06 14:27:48 +00:00
Danny Tuppeny e51af7cd0c [analysis_server] Improve failure messages if LSP JSON deserialisation tests fail
+ add test for fields declared as doubles where the client may pass numbers without decimals.

Change-Id: I6b709a4620a2688d948faae1103193ab6ff5ceea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246647
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-01 16:48:34 +00:00
Danny Tuppeny c954d80f18 [analysis_server] Fix LSP class name generation for nested inline types + minor renames
Change-Id: Ia8321eedeb783ffe5e91a508e258a87aa9efcf31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245372
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-24 16:36:55 +00:00
Ahmed Ashour 77da5016fe [analysis_server] remove ignore of no_leading_underscores_for_local_identifiers in generated file
Part of #49059

Change-Id: I9d8771e71ca505d61442bc04b9f71fd02f1c7d5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Danny Tuppeny <danny@tuppeny.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-20 15:54:53 +00:00
Danny Tuppeny 6f0af2090f [analysis_server] Rename some LSP types to match upcoming JSON model
+ handle some missing methods, and exclude an unused deprecated class.

Change-Id: I1a75b7c8637bf1ac736bcc48e7585de0a4d1eb4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244924
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-16 16:41:58 +00:00
Danny Tuppeny bcc7bda3d8 [analysis_server] Sort fields, enum members and base types consistently
To reduce changes in upcoming migration from TypeScript to JSON LSP models.

Change-Id: Id437fff5ecbaea4010482f21d5b5bdccfe0f56fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244625
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-12 18:45:05 +00:00
Danny Tuppeny a9804e3259 [analysis_server] Simplify types for LSP documentChanges
+ add ToJsonable to enums.

Change-Id: I1c51258f84d3aa27f82986be759483d7985475d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244624
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-12 15:46:25 +00:00
Danny Tuppeny a93a648e7f [analysis_server] Rename some LSP spec classes to match upcoming JSON models
Change-Id: Icbb071762ca86fd0ba75e4653e80ae480ce3e1a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244406
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-11 19:06:04 +00:00
Danny Tuppeny b4ed709482 [analysis_server] Sort fields in generated LSP types consistently
This simplifies an upcoming change switching from parsing LSP TypeScript definitions to using a new JSON definition (where items are not all in the same order).

Change-Id: I33672d645a8a96702dbfcbf1c090dfc8f5254960
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244404
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-11 15:36:34 +00:00
Danny Tuppeny cd71694342 [analysis_server] Sort types in LSP Unions consistently
This simplifies an upcoming change switching from parsing LSP TypeScript definitions to using a new JSON definition (where items are not all in the same order).

Change-Id: I773ce9ab174288ef5226b5f82f8ad7b8fb5f3693
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244245
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-05-11 15:36:34 +00:00
Danny Tuppeny 80fb1a56db [analysis_server] Add shared protocol.dart file for LSP
In an upcoming change some types will between these files. To reduce the size of that (already very large) CL and because the distinction between spec-generated/custom-generated types was unnecessary anyway, this adds a single import for LSP protocol-related types.

Change-Id: I322447d6c979538c12014d87875176e1bf2adca7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244244
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-05-11 15:28:35 +00:00
Danny Tuppeny 934f4802bd [analysis_server] Update to latest 3.16 LSP spec
+ add trailing commas to improve formatting performance.

Change-Id: I62d76ef94b8c53a19e2385dc6d072401fe444ba1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244062
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-05-09 18:18:23 +00:00
Sam Rawlins 6660e3c9a0 Add median, p90, and p95 metrics to completion_metrics
This adds a section to the output like this:

```
### Percentile metrics

                   p50  p90  p95  count > 2s
ms per completion    4    6    7           0
```

Bug: https://github.com/dart-lang/sdk/issues/48788
Change-Id: I868580324b3bc83605aa6466ffd5799625d1a9f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/240941
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-04-13 20:48:03 +00:00
pq 16b436151a migrate server to recommended lints
See: https://github.com/dart-lang/sdk/issues/48785

Change-Id: I1bec40cc0b52e5df5f07c35ec993e08c56a59cbe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/240907
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2022-04-12 13:34:12 +00:00