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>
This change is just some refactoring and additional flags on handlers to reduce the size of a future CL that adds DTD support.
It:
- Slightly changes the meaning of `lspInitialized` in the server (to now mean the server is in the "initialized" state where it can handle the set of requests LSP allows after a server is initialized)
- Adds an additional future for `lspUninitialized` to track when the server moves _out_ of that state
- Removes an expando in LspOverLegacyHandler that tracked handlers against a server, because they're now available in the `lspInitialized` future (for DTD support, we need access to them without the LSP-over-Legacy handler, because we need to initialize DTD at startup regardless of whether a legacy client triggers LSP initialization)
- Adds a flag `requiresTrustedCaller` to handlers to indicate whether they can only be called by the native protocol clients. Tthis must be explicitly provided for shared handlers to ensure each choice is deliberate. The flag is unused in this CL but included here to reduce noise in the next (it touches many files)
- Changes the type of `toJson()` on generated enum clases to have the native type of the value that is returned
Change-Id: I0615cf4671b84887bf56c236d82d0fa3c26e6d87
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379304
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Ignore files downloaded with the gclient custom var
"checkout_javascript_engines":
- third_party/firefox_jsshell/js
- third_party/firefox_jsshell/libnspr4.so
- third_party/firefox_jsshell/libplc4.so
- third_party/firefox_jsshell/libplds4.so
Change-Id: I135126867994862b48185ec9fa6be71e113411d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/371680
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
This package was moved to third_party but the URL here was not updated so the link on Pub is a 404.
This will need a new Pub release before it updates, but I'm not sure it's worth doing until there are some changes.
Change-Id: Ibd1e4ba0208f13f27e1e04ba141e8a78155bd2bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/369700
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Helin Shiah <helinx@google.com>
Commit-Queue: Elliott Brooks <elliottbrooks@google.com>
The source files were linked in filesystem order rather than sorted
order, which meant the binaryen programs were not built reproducibly.
The binaryen config.h contains the version of the binaryen based on the
git tag, however gclient sync does not pull down additional git tags
when the checkout is updated. Effectively the git tags are frozen and
the wrong version may be reported, leading to divergent builds and lack
of remote build cache sharing. Use the git commit instead.
Fix the gitignore rules to not ignore the files actually checked into
the Dart SDK.
Fixes: b/333761738
Change-Id: Ib2d812a04e629e5ce3da7185869051e30457d7e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362187
Commit-Queue: Jonas Termansen <sortie@google.com>
Commit-Queue: William Hesse <whesse@google.com>
Auto-Submit: Jonas Termansen <sortie@google.com>
Reviewed-by: William Hesse <whesse@google.com>
ErrorOr is not related to (or used by) the spec or generated spec classes. It's a utility class for the server implementations of LSP handlers.
I'd like to extend this class and add some extensions (that require access to private fields) and don't feel it belongs in `package:language_server_protocol`.
(note: `package:language_server_protocol` is not published so I believe removing it from there is not a breaking change)
Change-Id: I06799b18d61d123364711a549231134c792e70e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
`package:ffi` has moved from dart-lang/ffi to dart-lang/native.
Stop pulling in dart-lang/ffi and update the revision for
dart-lang/native to include a revision with `package:ffi`
`tools/generate_package_config.dart` should automatically update
the toplevel `.dart_tool/package_config.json` to point to the new
checkout location the Dart SDK.
Also rolls breaking change in native_assets_cli:
https://github.com/dart-lang/native/pull/885
And rolls the move of the test projects:
https://github.com/dart-lang/native/pull/938
Change-Id: Ibc1c88026487bece2580a7d3d4ceb7ee50cd76d0
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-win-release-try,pkg-win-release-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346761
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Add the javascript shell WebKit JavaScriptCore as an optional
download in third_party/jsc. This is a CIPD download, and includes
an update.sh script to upload a new version of jsc to CIPD and
update DEPS.
Bug: b/322134579
Change-Id: I94902ccdff3d121e5be51ef6eeab595fc24ad7e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348161
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
This adds support for serving the contents of virtual files to the client over a custom LSP protocol (based on the VS Code API of the same name). This is currently a custom Dart protocol but hopefully very close to something that could become standard LSP in future.
If the client advertises support for this feature (currently with an experimental flag "supportsDartTextDocumentContentProviderEXP1") we will return the set of URI schemes we can provide content for (currently "dart-macro-file"). Additionally, we will map internal analyzer macro paths (like `/foo/bar.macro.dart`) onto that scheme (`dart-macro-file://foo/bar.dart`) instead of standard `file://` URIs.
Overlays are not created for these kinds of files (because they would override the server-generated content).
Some language functionality "just works" because we can get resolved ASTs for the macro files (and many LSP features operate on these), but more testing (and tests) are required.
Included are tests for the virtual file methods (and events) and Go-to-Definition. Tests for other features are outstanding.
Change-Id: I2056699652873a12b730f565b823f187f883a1ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
No one could remember why this code was in a separate repo, and
checking it in to the SDK repo will make eliminating the
flutter buildroot repo a tiny bit easier.
TEST=It builds.
Change-Id: Ia34ca0c284fee1dd1734f45ef7acb9dd5cde808c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/342083
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Brian Quinlan <bquinlan@google.com>
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>
This change is needed for compatibility with the Flutter Engine's
use of a new Android NDK. The new Android NDK includes a new clang
toolchain which does a better job of classifying various
contributors to a binary's size, but which fails the compatibility
checks in the script. The intention of the compatibility checks is
to exclude versions of tooling that are too old not versions that
are too new. The compatibility check is also redundant with
failure modes later in the script. To avoid breaking any usage
of this script in the Dart tree, however, the check is retained
by this change, and instead a flag is added that skips it. This
is preferable to expanding on the questionable use of regular
expressions that implement the check to capture the strings
emitted by a continually updating toolchain.
Change-Id: If379e4aa86339a31eada0b6ce3fa90ddc9351804
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/337602
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
* Add a chromium LICENSE file for binary_size.
* Update BUILD.gn files to still work.
Tested: CQ+flutter-linux-try
Cq-Include-Trybots: luci.dart.try:flutter-linux-try
Bug: b/286184681
Change-Id: Ia52839bc3edd9e42c2df27d0cb7d290851712249
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/332963
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
The devtools cipd packages are now automatically built in the secure
release infrastructure and humans are no longer able to directly upload
the cipd packages. Cherry-picks to the release branches are handled by
specially triggering the secure builder.
Bug: b/297020298
Change-Id: I8d587cf787b85abea1762c7f302b261298adf83d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323640
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
We use the MSVC from Depot Tools to build C files.
When using clang from DEPS, we need to pass the right INCLUDE / LIB
environment variables. So we might as well use the MSVC instead.
Moves the `nativeCompilerEnvironmentVariables` to the
`TestConfiguration` so that it's cached.
Bug: https://github.com/dart-lang/sdk/issues/50565
Change-Id: I3576cd0ed07081afb9ae5ba737b8bfe1b21941e5
Cq-Include-Trybots: luci.dart.try:pkg-win-release-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-linux-release-try,pkg-linux-debug-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/298580
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Pulls in a new versions of https://github.com/dart-lang/native with
support for MacOS and enables the tests for these on the MacOS pkg
bots.
Fixes the clang paths in pkg/test_runner/lib/src/options.dart for
mac and win.
Since a relatively recent XCode is available on the bots, use XCode
to build rather than the clang from DEPS.
test/native_toolchain/recognizer_test was refactored to only
run tests for tools installed on the host. So it's unskipped.
Bug: https://github.com/dart-lang/sdk/issues/50565
Change-Id: I3804b01da7a4e74d3e49a1b2ba3c8425132417d7
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296180
Reviewed-by: Liam Appelbe <liama@google.com>
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>