Commit Graph

724 Commits

Author SHA1 Message Date
Ben Langmuir
2eb89985df [test] Update linuxmain 2020-10-16 13:51:24 -07:00
Ben Langmuir
44851919f7 [completion] Enable server-side filtering by default 2020-10-16 13:16:30 -07:00
Ben Langmuir
439428e65d [completion] Add doc comment for CodeCompletionSession
Conflicts:
	Sources/SourceKit/sourcekitd/CodeCompletion.swift
	Sources/SourceKit/sourcekitd/CodeCompletionSession.swift
2020-10-16 13:16:26 -07:00
Ben Langmuir
8c1ef3290c [gardening] Rename CodeCompletionOptions -> SKCompletionOptions
Since it is being used in the LSP protocol layer, give it a name that
clarifies that it is SourceKit-specific.
2020-10-16 13:11:55 -07:00
Ben Langmuir
947e15d25e [completion] Add usage note for server-side filtering command-line options 2020-10-16 13:11:55 -07:00
Ben Langmuir
d8b5a980ee [gardening] Fix copyright headers and formating in modified files
Conflicts:
	Sources/SourceKit/SourceKitServer.swift
	Sources/SourceKit/sourcekitd/SwiftLanguageServer.swift
2020-10-16 13:11:50 -07:00
Ben Langmuir
443469268d [completion] Add tests for server-side filtering 2020-10-16 13:09:11 -07:00
Ben Langmuir
b97dac9b6f [completion] Add an extension to pass completion options per-request
Conflicts:
	Sources/LanguageServerProtocol/SupportTypes/CodeCompletionOptions.swift
	Sources/SourceKit/CodeCompletionOptions.swift
	Sources/SourceKitLSP/CodeCompletionOptions.swift
2020-10-16 13:09:06 -07:00
Ben Langmuir
34896d2fe1 [log] Improve description of Position
By default, print 1-based line/column numbers using the defacto standard
line:column format. In debug print, continue to use the 0-based values
to match the constructor.
2020-10-16 12:02:47 -07:00
Ben Langmuir
9d5f54715c [completion] Fix tests when using server-side filtering
With this change, tests pass whether we default to server-side or
client-side filtering. Also duplicate a few interesting tests to run
both ways. A future commit will beef up the test coverage for
server-side filtering specifically.

Conflicts:
	Sources/SourceKit/sourcekitd/SwiftLanguageServer.swift
2020-10-16 12:02:43 -07:00
Ben Langmuir
1f28a7cd03 [completion] Set default maxResults = 200 2020-10-16 11:53:46 -07:00
Ben Langmuir
ffd9690884 [completion] Add initial server-side filtering implementation
Work in progress: add a basic implementation for keeping track of the
current completion session, and use the sourcekitd
complete.open/update/close requests.

Conflicts:
	Sources/SourceKit/sourcekitd/CodeCompletion.swift
	Sources/SourceKit/sourcekitd/SwiftLanguageServer.swift
2020-10-16 11:53:42 -07:00
Ben Langmuir
198266d775 [completion] Add server-side filtering UIDs 2020-10-16 11:36:06 -07:00
Ben Langmuir
e0511b9904 [gardening] Split code-completion into its own file
Similar to cursor info, there is enough code here it makes sense to
separate it out.

Conflicts:
	Sources/SourceKit/sourcekitd/CodeCompletion.swift
	Sources/SourceKit/sourcekitd/SwiftLanguageServer.swift
2020-10-16 11:15:56 -07:00
Ben Langmuir
f8f98dd5a9 [completion] Pass through new code-completion options
Conflicts:
	Sources/SourceKit/CodeCompletionOptions.swift
	Sources/SourceKit/SourceKitServer.swift
	Sources/SourceKit/sourcekitd/SwiftLanguageServer.swift
2020-10-16 10:54:02 -07:00
Ben Langmuir
22116ca755 Merge pull request #273 from benlangmuir/clean-53
[5.3] [build-script] Clean build directory
swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-11-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-10-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-09-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-08-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-07-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-06-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-05-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-04-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-03-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-02-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-01-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-10-29-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-10-13-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-10-12-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-10-11-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-10-03-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-09-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-07-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-06-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-05-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-04-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-03-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-02-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-09-01-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-31-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-27-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-18-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-17-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-15-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-13-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-10-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-09-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-08-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-07-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-05-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-08-04-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-31-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-30-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-29-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-28-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-27-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-25-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-22-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-20-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-18-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-17-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-16-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-15-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-14-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-13-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-12-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-11-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-04-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-03-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-02-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-07-01-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-30-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-29-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-24-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-23-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-22-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-21-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-20-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-18-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-17-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-16-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-14-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-13-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-10-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-09-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-08-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-06-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-05-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-04-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-02-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-06-01-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-05-31-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-05-19-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-05-11-a swift-5.3-DEVELOPMENT-SNAPSHOT-2020-05-04-a swift-5.3.1-RELEASE swift-5.3-RELEASE
2020-04-30 16:16:16 -07:00
Ben Langmuir
f9b89f3e19 [build-script] Clean build directory
Works around a swiftpm bug that causes incorrect incremental builds.
2020-04-30 15:06:11 -07:00
Mishal Shah
a51b76e224 Merge pull request #267 from benlangmuir/toolchain-path
[5.3] [build-script] Remove hard-coded install prefix of /usr and pass it in instead
swift-5.3-DEVELOPMENT-SNAPSHOT-2020-04-21-a
2020-04-21 14:39:16 -07:00
Butta
b7eba90ade [build-script] Remove hard-coded install prefix of /usr and pass it in instead 2020-04-21 13:22:47 -07:00
Rintaro Ishizaki
e7a46c9985 Merge pull request #258 from rintaro/sourcekitd-completion-optionalsort-rdar60799439
[sourcekitd] Add an option to completion request to sort results
swift-DEVELOPMENT-SNAPSHOT-2020-04-01-a swift-DEVELOPMENT-SNAPSHOT-2020-03-31-a swift-DEVELOPMENT-SNAPSHOT-2020-03-27-a
2020-03-27 09:07:59 -07:00
Rintaro Ishizaki
a27470dc71 [sourcekitd] Add an option to completion request to sort results
rdar://problem/60799439
2020-03-26 13:53:40 -07:00
Ben Langmuir
babf190c18 Merge pull request #256 from benlangmuir/disable-sr-12378
Disable testDependenciesUpdatedCXXTibs temporarily
swift-DEVELOPMENT-SNAPSHOT-2020-03-26-a swift-DEVELOPMENT-SNAPSHOT-2020-03-25-a swift-DEVELOPMENT-SNAPSHOT-2020-03-24-a swift-DEVELOPMENT-SNAPSHOT-2020-03-23-a swift-DEVELOPMENT-SNAPSHOT-2020-03-22-a swift-DEVELOPMENT-SNAPSHOT-2020-03-21-a swift-DEVELOPMENT-SNAPSHOT-2020-03-20-a swift-DEVELOPMENT-SNAPSHOT-2020-03-19-a swift-DEVELOPMENT-SNAPSHOT-2020-03-18-a
2020-03-18 09:02:12 -07:00
Ben Langmuir
4468fead43 Disable testDependenciesUpdatedCXXTibs temporarily
https://bugs.swift.org/browse/SR-12378
2020-03-17 16:30:04 -07:00
David Goldman
81e2688c5d Support for clangd's go-to-definition for #include/#import (#247)
* Support for clangd's go-to-definition for header files

- By forwarding the request to clangd when it fails to give
  symbol information, we are able to use its built in
  go-to-definition support for headers (jump to header file)

* Add static tibs test for clangd go-to-#include

* Move #include test to SourceKitTests and regenerate linux main

* Fix improper escaping of %40 in file URLs

* Add URL escaping test

* Another attempt to fix broken BuildServerBuildSystemTests test on Linux

- URL's `standardizedFileURL` removes trailing slashes from file URLs,
  but only on Linux
swift-DEVELOPMENT-SNAPSHOT-2020-03-17-a swift-DEVELOPMENT-SNAPSHOT-2020-03-16-a
2020-03-13 19:20:25 -04:00
Ben Langmuir
7d18d3bb38 Merge pull request #254 from benlangmuir/wait-io
[JSONRPC] Do not exit until outstanding I/O has finished
swift-DEVELOPMENT-SNAPSHOT-2020-03-13-a swift-DEVELOPMENT-SNAPSHOT-2020-03-12-a swift-DEVELOPMENT-SNAPSHOT-2020-03-11-a swift-DEVELOPMENT-SNAPSHOT-2020-03-10-a
2020-03-10 13:13:14 -07:00
Ben Langmuir
fae2fe85a7 [JSONRPC] Do not exit until outstanding I/O has finished
Specifically, we care that all outstanding **writes** are finished
before we call the close handler, because otherwise we may (a) send
corrupted output during shutdown, or (b) drop notifications and replies
sent during the shutdown process.  The former is a potential issue for
clients that are not robust about parse failures, and the latter is an
issue for reproducibility and robustness during testing/debugging - in
particular, we have some integration tests that send data without
waiting for individual replies and they need to finish outstanding
replies before exiting.

rdar://60159448
2020-03-10 11:16:34 -07:00
Ankit Aggarwal
b00cff1116 Merge pull request #253 from apple/rename-tsc
Adopt the new location of vendored TSC in SwiftPM
swift-DEVELOPMENT-SNAPSHOT-2020-03-09-a swift-DEVELOPMENT-SNAPSHOT-2020-03-08-a swift-DEVELOPMENT-SNAPSHOT-2020-03-06-a swift-DEVELOPMENT-SNAPSHOT-2020-03-04-a
2020-03-03 11:32:26 -08:00
Ankit Aggarwal
41c6425f26 Adopt the new location of vendored TSC in SwiftPM 2020-03-03 09:43:34 -08:00
Ben Langmuir
b92d27ed99 Merge pull request #252 from benlangmuir/deadlock-begone
Make BuildSystemManager passthrough notifications fully `async
swift-DEVELOPMENT-SNAPSHOT-2020-03-03-a
2020-02-27 09:56:17 -08:00
Ben Langmuir
f5bd9cf12a Make BuildSystemManager passthrough notifications fully `async
This avoids having a gotcha in the API where if a build system calls
these methods while it is being called back for settings or to register
for notifications it deadlocks (or crashes in libdispatch to prevent the
deadlock).
2020-02-27 08:36:20 -08:00
Ben Langmuir
77c2ae49d0 Merge pull request #251 from benlangmuir/bsm-fixes
BuildSystemManager fileBuildSettingsChanged fixes for dropped notifications
2020-02-27 07:38:35 -08:00
Ben Langmuir
8a6340eaca Update linuxmain 2020-02-26 16:41:09 -08:00
Ben Langmuir
67548b34a7 Fix dropped settings when racing between unregister and settings changed
If we unregisted a file for settings and subsequently received a
settings changed notification that contained that file, we would drop
all of the *other* settings changes delivered in the same call.
2020-02-26 16:38:30 -08:00
Ben Langmuir
8d9c2e7791 Fix interpretation of empty set in BuildSystemManager.fileBuildSettingsChanged
We need to iterate over main files, not watched files. Otherwise we
would not get updates for headers unless we also watched their main
file.
2020-02-26 16:19:45 -08:00
Ankit Aggarwal
c6f08fd034 Merge pull request #250 from hartbit/spmbuildcore
Import the new SwiftPM SPMBuildCore target
2020-02-21 06:58:19 -08:00
David Hart
e75f8e9a2a Import the new SwiftPM SPMBuildCore target 2020-02-21 07:12:47 +01:00
Ben Langmuir
f9f219c36c Merge pull request #249 from benlangmuir/rel-def
Add default value to DiagnosticRelatedInformation initializer
swift-DEVELOPMENT-SNAPSHOT-2020-02-21-a swift-DEVELOPMENT-SNAPSHOT-2020-02-20-a
2020-02-19 11:58:12 -08:00
Ben Langmuir
428ab30f5a Add default value to DiagnosticRelatedInformation initializer 2020-02-19 10:41:33 -08:00
Ben Langmuir
a06fe3d646 Merge pull request #248 from benlangmuir/uniquely
[test] Make test URLs unique to avoid sourcekitd race
2020-02-18 18:41:33 -08:00
Ben Langmuir
da632e5980 [test] Make test URLs unique to avoid sourcekitd race
If a document is re-opened really quickly after a previous open or
modification, we might get a notification from the previous state of the
document when its AST finishes building. In normal operation, this is
benign, because when we make a request to get the new diagnostics and
semantic highlights, they are guaranteed to be for the new document. But
in testing, we don't generally anticipate these spurious notifications.
The ideal fix for this would be to shutdown and restart sourcekitd
server between tests. Currently there are bugs preventing that from
working in sourcekitd, so as a workaround, make sure all URLs in tests
are uniqued so they will not collide.

rdar://59488048
2020-02-18 17:10:42 -08:00
Ben Langmuir
4367cd4258 DNM - Revert "[test] Disable testMuliEditFixitCodeActionNote"
This reverts commit c3e3669e96.
2020-02-18 17:10:41 -08:00
Ben Langmuir
a61a2857e4 Merge pull request #243 from DavidGoldman/letsgetvirtual
Disable diagnostics for blacklisted document schemes
2020-02-18 08:18:30 -08:00
Ben Langmuir
9abe3fffb9 Merge pull request #245 from benlangmuir/disable-sad-test
[test] Disable testMuliEditFixitCodeActionNote
swift-DEVELOPMENT-SNAPSHOT-2020-02-16-a
2020-02-15 14:01:55 -08:00
Ben Langmuir
c3e3669e96 [test] Disable testMuliEditFixitCodeActionNote
SourceKit-LSP appears to be behaving correctly, but the toolchain
sourcekitd is sometimes returning 0 warnings instead of 1 in this test
when run on Linux. Disabling while we investigate, since this does not
appear to be a new issue, nor an issue without sourcekit-lsp itself.

rdar://problem/59487935
2020-02-15 12:22:32 -08:00
David Goldman
bb62772c32 Regenerate linux test main
Change-Id: I793f0ce4844bc0db5873164dd39c0f292af00cd8
2020-02-13 18:47:25 -05:00
David Goldman
47c9428fa2 Disable diagnostics for blacklisted document schemes
- Otherwise can lead to confusing duplicated diagnostics in VSCode
  due to its usage of virtual documents for source control diffbases

- sourcekitd does not properly handle virtual files when the
  `-working-directory` flag is passed

Change-Id: I9b7f435aac3f7c19082dd6c2fd7561c524356352
2020-02-13 18:24:31 -05:00
Ben Langmuir
fc3c85c0f9 Merge pull request #242 from DavidGoldman/dependencyhandling
Improve handling/testing of `filesDependenciesUpdated` for clangd
swift-DEVELOPMENT-SNAPSHOT-2020-02-14-a swift-DEVELOPMENT-SNAPSHOT-2020-02-13-a
2020-02-13 07:53:57 -08:00
David Goldman
453d77352e Regenerate Linux test main
Change-Id: I3549be35ed7849c674b661584a37b735ded2700c
2020-02-12 11:41:45 -05:00
Ben Langmuir
67e6b6ced4 Merge pull request #241 from DavidGoldman/buildsystemmanager
Fix BuildSystemManager.filesDependenciesUpdated calling wrong delegate method
swift-DEVELOPMENT-SNAPSHOT-2020-02-12-a swift-DEVELOPMENT-SNAPSHOT-2020-02-11-a
2020-02-10 15:27:14 -08:00
David Goldman
72e7c5b25f Improve handling/testing of filesDependenciesUpdated for clangd
- Add support for recently upstreamed `forceRebuild` extension (6ff0228c6d).
  Note that until it is merged into Apple-clangd we can't add a test for it with missing headers

- Add a test for the clangd functionality by modifying a generated header file

Change-Id: If53fd88da92e4fc7d9c22af7430300fb3fc0f5ce
2020-02-10 16:22:54 -05:00