-
Notifications
You must be signed in to change notification settings - Fork 314
Merge main
into release/6.1
#1879
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
atrick
merged 76 commits into
swiftlang:release/6.1
from
ahoppen:merge-main-6.1-2024-12-10
Dec 10, 2024
Merged
Merge main
into release/6.1
#1879
atrick
merged 76 commits into
swiftlang:release/6.1
from
ahoppen:merge-main-6.1-2024-12-10
Dec 10, 2024
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ft 5.10 toolchain swiftlang#1714 changed the background preparation mode to `enabled` but a Swift 5.10 toolchain does not support `--experimental-prepare-for-indexing`. Thus, these tests fail. Skip tests that rely on background indexing when testing SourceKit-LSP with a Swift 5.10 host toolchain.
We made quite a few fixes recently to make sure that path handling works correctly using `URL` on Windows. Use `URL` in most places to have a single type that represents file paths instead of sometimes using `AbsolutePath`. While doing so, also remove usages of `TSCBasic.FileSystem` an `InMemoryFileSystem`. The pattern of using `InMemoryFileSystem` for tests was never consistently used and it was a little confusing that some types took a `FileSystem` parameter while other always assumed to work on the local file system.
Interpret it as relative to the project root directory if it's a relative path.
Forgot to enable this upcoming feature when I added it to the Package manifest.
Skip tests that use background indexing when running tests with a Swift 5.10 toolchain
…ibility-windows Enable `MemberImportVisibility` in the CMake build
…t-relative-scratch-dir Allow `scratchPath` to be a relative path
swiftlang#1824 and swiftlang#1832 raced.
Fix merge conflict
Handle on-type formatting requests
Adding an item to `AsyncQueue` was linear in the number of pending queue items, thus adding n items to an `AsyncQueue` before any can execute is in O(n^2). This decision was made intentionally because the primary use case for `AsyncQueue` was to track pending LSP requests, of which we don’t expect to have too many pending requests at any given time. While we can't fix the quadratic performance issue in general, we can resolve the quadratic issue of `AsyncQueue<Serial>` by making a new task only depend on the last item in the queue, which then transitively depends on all the previous items. `AsyncQueue<Serial>` are the queues that are most likely to contain many items. Fixes swiftlang#1725 rdar://137886469
…winLogger` `os_log` doesn’t consider integers and bools as private information and neither should `NonDarwinLogger`. rdar://138659073
The LSP spec says the result of `shutdown` is `null`, not an empty object. Fixes swiftlang#1733 rdar://137886488
Fixes swiftlang#1739 rdar://137886470
…ace symbols Previously, we didn’t take outer types into account or only took one level of container type into account. Fixes swiftlang#1673 rdar://136078089
Fixes swiftlang#1670 rdar://136014520
…e exclusion from package manifest
Add another import of new Android overlay and remove non-existent file exclusion from package manifest
Fix quadratic performance issue in `AsyncQueue<Serial>`
Log integers and booleans as public information by default in `NonDarwinLogger`
Reply with `null` to `shutdown` request
Don’t crash when opening a file with an empty path
Fully qualify type names in call hierarchy, type hierarchy and workspace symbols
Minor improvements to `DLHandle.Handle`
Provide build settings for version-specific package manifests
…gger Log which file caused the package to be reloaded
Don’t re-index file if we are waiting for its preparation
`generateBuildGraph` was named misleadingly because the primary purpose of these tasks was to schedule indexing tasks and generating the build graph was just a necessary step for this. Also update it to take into account that multiple tasks scheduling indexing tasks might be running in parallel.
Some SwiftPM functions check whether their observability scope has errors. If we use the same observability scope for all SwiftPM operations during SourceKit-LSP’s lifetime, a single SwiftPM error will set the `hasError` bit in that observability scope for the entirety of SourceKit-LSP’s lifetime, impacting all upcoming SwiftPM operations. Creating a separate child scope for every operation fixes
When we have background indexing enabled, SourceKit-LSP manages the dependencies. We should thus allow it to update them, eg. after `Package.resolved` was updated.
We frequently compute if a file is descendent of the directory and `URL.pathComponents` is an expensive computation.
The transform to get the transformed result might be expensive, so we should cache its result.
…ackground indexing Since we enabled background indexing by default, the user is no longer explicitly opting into it. A user might be exclusively working with compilation database projects or BSP server without background indexing support and thus not care that we switched the background indexing default. We shouldn’t bother them with a warning message every time they launch sourcekit-lsp.
…rarchy Only show call-like occurrences in call hierarchy.
…ntacticindex Batch updates to the syntactic test index on fileDidChange events
When `\{` is included inside an LSP placeholder, in VS Code will insert `\{` verbatim. At least in VS Code, we only need to escape the closing brace. While at it, also escape `$` and `\` inside placeholders, according to the LSP spec.
Treat `$/setTrace` as a freestanding message
Improve logic for build graph generation status
Cache path components for directories returned from build system
Cached transformed results in `Cache`
…-warning Don’t show warning message when opening projects that don't support background indexing
Don’t escape `{` inside placeholder snippets
Create child scopes for SwiftPM operations
Allow dependency updates in the `index-build` folder
Currently, when there‘s a syntax error in a package manifest, we don’t get any build settings from it in SourceKit-LSP and thus loose almost all semantic functionality. If we can’t parse the package manifest, fall back to providing build settings by assuming it has the current Swift tools version. Currently, when there‘s a syntax error in a package manifest, we don’t get any build settings from it in SourceKit-LSP and thus loose almost all semantic functionality. If we can’t parse the package manifest, fall back to providing build settings by assuming it has the current Swift tools version. Fixes swiftlang#1704 rdar://136423767
…-settings Return compiler arguments for invalid package manifests
@swift-ci Please test |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merge
main
intorelease/6.1
except for the following PRs, which I would like to qualify a little longer onmain
and thus not include in 6.1.*.md
and*.tutorial
files from Swift DocC #1854{
inside placeholder snippets #1870