- Add
swift.ignoreSwiftVersionFilesetting to ignore the toolchain set in.swift-versionfiles (#2073)
- Swift-testing test runs are marked as 'started' in the UI immediately, not after compilation finishes (#2079)
- Fix legacy boolean setting values for
swift.sourcekit-lsp.backgroundIndexingnot being recognized (#2092) - Launch configurations defined in multi-root workspaces were unable to find the appropriate folder to run in (#2105)
- Ignoring the dialog to use the toolchain defined in
.swift-versionwould prevent extension acitvation (#2107) - Avoid rapidly resolving packages during rebases (#2125)
- Fix typo in Swift extension setting (#2130)
- Fix icon for build progress jittering in the status bar (#2150)
- Fixed extension activation issues involving swiftly (#2066)
- Fixed not all settings notifying the user when malformed (#2086)
- Show progress when describing/listing dependencies on package load (#2028)
- Drop support for Swift 5.8 (#1853)
- An official public API for the Swift extension that can be used by other Visual Studio Code extensions (#2030)
- Add support for installing the swiftly toolchain manager (1881)
- Fix the wrong toolchain being shown as selected when using swiftly v1.0.1 (#2014)
- Fix extension displaying SwiftPM's project view and automatic build tasks even when
disableSwiftPackageManagerIntegrationwas true (#2011) - Validate extension settings and warn if they are invalid (#2016)
- Show the Test Results panel when tests fail to compile and the user has
testing.automaticallyOpenTestResultsset toopenOnTestFailure(#2035) - Added missing icon for
macrotargets in the Project Panel (#2043)
- Fix extension failing to find
lldb-dapwhenswift.pathpoints at an Xcode toolchain (#1998) - Omit
--scratch-pathwhen enumerating plugins withswift package plugin --list(#1996)
- Fix extension failing to activate when Swiftly was installed via Homebrew (#1975)
- Fix running
swift packagecommands withswift.disableSwiftPackageManagerIntegrationenabled (#1969) - Fixed an issue where
lldb-dapcould not be found in Command Line Tools toolchains (#1936)
- Suggest "Open Documentation" when toolchain not found (#1939)
- Make sure all folder operation listeners get past folder add events (#1945)
- Syntax highlighting for
*.swift.gybfiles (#1515) - Activate the extension if a workspace folder contains a
.bspfolder (#1865)
- Fixed an issue where the activation of the extension was held up while waiting on the debug configuration to update (#1914)
- Swiftly toolchain installation support with commands to install stable and snapshot releases, progress tracking, and secure post-install script handling (#1780)
- Prompt to restart
SourceKit-LSPafter changing.sourcekit-lsp/config.jsonfiles (#1744) - Prompt to cancel and replace the active test run if one is in flight (#1774)
- A walkthrough for first time extension users (#1560)
- Allow
swift.backgroundCompilationsetting to accept an object where enabling theuseDefaultTaskproperty will run the default build task, and thereleaseproperty will run thereleasevariant of the Build All task (#1857) - Added new
targetandconfigurationproperties toswiftlaunch configurations that can be used instead ofprogramfor SwiftPM based projects (#1890)
- Don't start debugging XCTest cases if the swift-testing debug session was stopped (#1797)
- Improve error handling when the swift path is misconfigured (#1801)
- Fix an error when performing "Run/Debug Tests Multiple Times" on Linux (#1824)
- Fix the
> Swift: Run Swift Scriptcommand not running unless a Swift Package folder is open (#1832) - Fix the SourceKit-LSP diagnostics reported progress (#1799)
- Omit incompatible
additionalTestArgswhen building tests for debugging (#1864)
- New
swift.createTasksForLibraryProductssetting that when enabled causes the extension to automatically create and provide tasks for library products (#1741) - New
swift.outputChannelLogLevelsetting to control the verbosity of theSwiftoutput channel (#1746) - New
swift.debugTestsMultipleTimesandswift.debugTestsUntilFailurecommands for debugging tests over multiple runs (#1763) - Optionally include LLDB DAP logs in the Swift diagnostics bundle (#1768)
- Added log levels and improved Swift extension logging so a logfile is produced in addition to logging messages to the existing
Swiftoutput channel. Deprecated theswift.diagnosticssetting in favour of the newswift.outputChannelLogLevelsetting (#1746)
- Added Swiftly toolchain management support
.swift-versionfiles, and integration with the toolchain selection UI (#1717) - Added code lenses to run suites/tests, configurable with the
swift.showTestCodeLensessetting (#1698) - New
swift.excludePathsFromActivationsetting to ignore specified sub-folders from being activated as projects (#1693) - New
swift.recordTestDurationsetting to disable capturing test durations, which can improve performance of heavy test runs (#1745) - Add a
Generate SourceKit-LSP Configurationcommand that creates the configuration file with versioned schema pre-populated (#1726)
Run multiple times...andRun until failure...will now work when multiple tests are selected (#1724)- Provide the Swift environment variables when resolving a
swift-plugintask (#1727) - Optimized test explorer for test runs with many test cases (#1734)
- Add clickable toolchain selection to Swift version status bar item (#1674)
- Add macOS support for Swiftly toolchain management (#1673)
- Show revision hash or local/editing keyword in project panel dependency descriptions (#1667)
- Show files generated by build plugins under Target in Project Panel (#1592)
- Added
scopeto extension settings (#1629)
- Fix test explorer tests not updating on document modification (#1663)
- Fix improper parenting of tests w/ identical names in explorer (#1664)
- Ensure document symbols are provided for folders in multi-root workspaces (#1668)
- Fix comment regex not handling params/types/fn names containing
func(#1697) - Prepend
///when continuing documentation comments on a new line (#1703) - Respect
files.excludesetting values set tofalse(#1696)
- Cleanup Swift diagnostics when the source file is moved or deleted (#1653)
- Make sure newline starts with
///when splitting doc comment (#1651) - Capture diagnostics with
Swift: Capture Diagnostic Bundleto a .zip file (#1656) - Prevent continuous "package resolve" cycles (#1654)
- Fix error when running
Reset Package Dependenciescommand from the Project view (#1661) - Mark tests as skipped when a compilation error preempts a test run (#1659)
- Support for multi-root .code-workspace workspaces (#1566)
- Notify user if the
xcode-selected Xcode doesn't match setting (#1563)
- Do not show non-"swift" tasks in the project panel (#1620)
- Make sure activation does not fail when
swift.pathisnull(#1616) - Fix
Swift: Reset Package Dependenciescommand on Windows (#1614) - Activate extension when a .swift source file exists in a subfolder (#1635)
- Resolve Swiftly toolchain path (#1632)
- Fix diagnostic parsing when the file has a space in it (#1633)
- Hide files excluded with files.exclude from Project Panel (#1626)
- Add command to generate launch configurations (#1577)
- Break immediately when cancelling a multiple test run (#1589)
- Fix timing issues introduced by new version of Node.js (#1576)
- Fix issues with splitting output lines on Windows (#1570)
- Better handle status updates for build tasks (#1539)
- Allow platform selection in remote SSH sessions (#1567)
- Don't colorize swift testing issue messages (#1543)
- Poll for updated tasks in project panel (#1516)
- Support finding compile_commands.json in non root project directories (#1484)
- Support different toolchains per folder (#1478)
- Disable clicking on links in Live Preview (#1518)
- Avoid blocking folder addition on package loading (#1422)
- Increase the size of child_process buffers (#1506)
- Fix handling of malformed educational notes links (#1607)
- Convert the Dependencies View into the Project Panel to view all aspects of your Swift project (#1382)
- Use the LLDB DAP extension to debug when using a Swift 6 toolchain (#1384)
- Added run and debug buttons to Swift editors (#1378)
- Educational notes from compiler diagnostics can be viewed directly in VS Code (#1423)
- Swift settings now support variable substitutions (#1439)
- SwiftPM plugin tasks are now configurable via settings (#1409)
- Added the
swift.scriptSwiftLanguageVersionsetting to choose Swift language mode when running scripts (thanks @louisunlimited) (#1476)
- Prevent duplicate reload extension notifications from appearing (#1473)
- Actual and Expected values are shown in the right order on test failure (#1444)
- Correctly set the
DEVELOPER_DIRenvironment variable when selecting between two Xcode installs (#1433) - Prompt to reload the extension when swiftEnvironmentVariables is changed (#1430)
- Search for Swift packages in sub-folders of the workspace (#1425)
- Fix missing test result output on Linux when using print (#1401)
- Stop all actively running tests when stop button is pressed (#1391)
- Properly set
--swift-sdkwhen usingSwift: Select Target Platformon Swift 6.1 (#1390)
- Fix debugging of Swift tests when using Xcode 16.1 Beta (#1396)
Rename the displayName of the extension back to Swift now that the old sswg extension has been renamed to Swift (Deprecated).
- Add a new setting (
swift.packageArguments) to provide arguments to swift commands that can resolve packages (#1342) - Add VS Code iconography to the Run and Debug code lenses (#1347)
The Swift extension for VS Code has moved to the official swiftlang organization in the VS Code Marketplace!
The new extension id is swiftlang.swift-vscode.
- Permissions for plugin tasks can now be configured with the
swift.pluginPermissionssetting (#1297) - Add support for the
--swift-sdkSwiftPM option (#1191) - Improve documentation around disabling SourceKit-LSP as to what features it will impact (#1308)
- The extension will now detect when xcode-select has been used to select a different Xcode toolchain on macOS (#1244)
- Builds will now show a
Preparingnotification when launched before progress is available (#1323)
- Dependencies downloaded from a registry will now display properly in the dependencies view (#1311)
- Activate extension when
compile_flags.txtorbuildServer.jsonis present (#1240) - Add
"auto"mode to sourcekit-lspbackgroundIndexingsetting (#1232)
- Fix location for diagnostics generated from macros via
swiftc(#1234) - Fixed inability to
Debug Teston test targets in Test Explorer (#1209) - Fixed bug that could cause all tests to run when only some tests were requested (#1186)
- Fix test runs not being able to be cancelled in some situations (#1153)
- XCTest output is not recorded when using CodeLLDB (#1100)
- Only add line terminator to selector when not debugging tests (#1097)
- Warn instead of error on missing test framework version on Windows (#1098)
- Fixed several debugging issues on Windows (#1083)
- Correct filtering of test names that share a common prefix (#1086)
- Prevent truncation of diagnostic messages on Windows (#1082)
- Provide diagnostics for C/C++ source (#1062)
- Fix extension activation when running with latest VS Code insiders build (#1073)
- Make LLDB launch configurations platform agnostic (#1024)
- Prevent race condition when printing test output from swift-testing (#1058)
- Added New Swift File command (#1018)
- Added the
swift.sourcekit-lsp.backgroundIndexingsetting to enable experimental background indexing in SourceKit-LSP with Swift 6 (#992) - Added the
swift.additionalTestArgumentssetting to add arguments toswift testandswift build --build-testscommands used when building and running tests within VS Code (#1020) - Run tests multiple times by right clicking them in the Test Explorer > Run Multiple Times (#1009)
- Run tests until a failure (or a maximum number) by right clicking them in the Test Explorer > Run Until Failure (#1009)
- Comments preceding a failing swift-testing expectations are included in the test output to match command line behavior (#1025)
- Properly forward exit code if a task is terminated by the user with CTRL/CMD+C (#1006)
- Update path of
lldb-dapon Darwin (#1008) - Mark XCTest suites as passed/failed immediately on suite completion (#1031)
- swift-testing tags on suites should be inherited by child suites and tests (#1015)
- More reliably detect if the test binary is a unified swift-testing + XCTest binary (#1004)
- Support the new unified testing binary format released with Xcode 16 Beta 5
- Improved error reporting when SourceKit-LSP fails to start
- When debugging XCTests on linux/windows the list of tests provided to XCTest should be comma separated
- Setting of Path when debugging tests to find XCTest.dll on Windows
- Re-index project command.
- Add setting to exclude files/directories from code coverage results
- Updated and refined settings descriptions
- Added "throws" section to doc comment template
- Use correct XCTest path when debugging Windows.
Swiftterminal profile- Set Swift environment variables in the integrated terminal
- Parameterized
swift-testingtests inherit tags - Updated the Swiftly URL
- Fix duplicate symbol linker error when building Windows tests with coverage
- Update
DEVELOPER_DIRfor macOS toolchain selection
- Issue diagnosis command
swift: Capture VS Code Swift Diagnostic Bundle
- No longer show XCTest failures under Problems view
- Fix an issue where stale diagnostics were not being removed
- Release test run profiles.
- Allow SourceKit-LSP to write to multiple output channels.
- Warn users about lack of symlink privileges on Windows
- Renamed
swift-latesttoLatest Installed Toolchainin toolchain selection dialog. - Improved LSP configuration change notification.
- Improved toolchain error message when swift.path exists in settings.
- Removed stale swiftc diagnostics when loading sourcekit-lsp diagnostics.
- Only create fifo pipe when running swift-testing tests.
- Always register the swift-lldb debug adapter provider.
- Use proper lldb path on Windows.
- Fix XCTest argument format when debugging multiple tests
- Add user defined and optional sanitizer/diagnostics arguments to test builds
- Silence Terminal on test runs
- Support for swift-testing.
- Toolchain selection command
swift: Select Toolchain.... - Create new Swift project command
swift: Create New Project.... - Use custom LSP requests for test discovery.
- Support for recording multiple issues per test.
- Code snippets for common actions, like creating tests, availability conditions, option sets.
- CustomExecution for swift tasks.
- UI showing Swift build status
- Replace test coverage support with native VSCode coverage APIs.
- Merge SourceKit-LSP diagnostics with diagnostics from Swift compiler.
- Removed
swift.problemMatchCompileErrorsas it is no longer needed. - Deprecate
swift.sourcekit-lsp.serverPathsetting. - Only disable build tasks, while other tasks are running, in Swift versions earlier than 6. As Swift 6 manages access to
.buildfolder.
- Removed CI for Swift 5.4/5.5
- Running tests in parallel. It is available from the drop-down next to the run button at the top of the TestExplorer. It is not available while debugging and parsing of XCT failure messages does not work prior to Swift 6.
- If using Swift 5.10 allow for InlayHint text edits.
- If using Swift 6 name of debug adapter has changed from
lldb-vscodetolldb-dap.
- Don't check if line above is a comment if you are on line 0 in comment completion code.
- Loading of package dependencies for Swift 5.10 packages.
- Platform specific settings in the swift task definition.
- Environment variables to set while running a swift task.
- Setting to disable all Swift Package Manager integrations.
- Activate extension when debugging.
- Watch for changes to swift files in test targets and flag 'test discovery is required' if a file changes or is deleted.
- Expand
~in swift file path setting to home directory. - Don't create test explorer if project has no tests.
- Only run test discovery after a build all task.
- Parsing of test output while debugging tests.
- Setting to control action after a build error: focus on problems pane, focus on terminal or do nothing.
- Don't force show test pane when testing starts. Let
Testing: Open Testingdefine when test pane should open.
- Setup of URI on readonly document viewer. This fixes jump to symbol in a swiftinterface on Windows
- Task queue operation to spawn a process and parse its output. Using this ensures a build task does not run at the same time.
- Use spawn process task queue operation in test discovery and unedit of modules.
- Don't wait for SwiftPM plugin listing to finish before allowing build and run.
- If auto-resolve is disabled then also disable the initial test discovery as this can cause a resolve
- Finding swift executable on non-english installs of Linux
Merge debug adapter changes from v1.6.x prerelease builds into main release.
- Consolidate common debug configurations when building debug configurations.
- Fix version comparisons for Swift versions 5.10 or greater.
- Increase the size of stdout available to
llvm-covprocess. This fixes displaying test coverage for larger projects. - Build product instead of target when compiling Swift Snippets. This fixes running of Snippets on macOS.
- Command
swift.attachDebuggerto attach debugger to process
- Path construction on Windows in
launch.json
- Support for using debug adapter included in Swift toolchain instead of CodeLLDB extension. Currently this is only available in the Windows toolchain. Setting for this is disabled by default.
- Toolchain setup for installs that don't include a
usrfolder.
- Support for automatic search of sub-folders for Swift packages. Defaulted to off.
- Debug adapter tracker to catch logging to stdout and stderr. Test output is now visible while debugging tests.
- Removal of workspace folders, now removes all packages associated with the workspace not just the one at the root of the folder.
- Custom Swift path on Windows.
- Fixed adding of packages in sub-folders twice at startup.
- Run/Debug commands that will run/debug executable associated with current active file.
- Run/Debug context menu entries for files that have an associated executable.
- Breaking Change: SourceKit-LSP configuration settings have been renamed to include a
swift.prefix to avoid clashes with the original SourceKit-LSP extension. - If background compilation is enabled, then run build as startup.
- Removed
Run Scriptcontext menu entry when editing a file that is part of a Package. - Use
tasks.jsondefault build task, if setup, for Test explorer and background compilation. - Only use custom macOS test debug configuration, which was added to fix an issue in Swift 5.6, when using Swift 5.6.
- If LSP server shutdown times out, still restart the server.
- Fix version check for versions of Swift prior to 5.4.
- Add sanitizer build setting
- Build tasks are not available while other tasks are running on the package
- Add read-only document provider for swiftinterface files in preparation for go to definition for stdlib/framework symbols.
- Add supported language configuration setting to replace Support C/C++ setting
- deprecate Support C/C++ setting
- Remove a number of unnecessary build arguments for Windows when using Swift 5.9 or later
- Configure vscode-lldb to use native expressions
- Require a reload when using the select Xcode developer directory command
- Reporting of errors returned by the compiler without a column number
- Flag to Swift tasks and Swift command plugin tasks that delays queued tasks (eg resolve, update) while task is running. Build tasks have this set to true by default.
- Default settings for popular Swift command plugins (Docc, lambda, SwiftFormat).
- Class TestItems status is updated once all the tests inside have completed, instead of once test run has completed.
- Use
--scratch-pathargument instead of--build-pathwhen running on Swift 5.8 or later.
### Changed
- Run the test executable directly when running tests instead of via
swift test.
- Ensure we catch errors when decoding
Info.pliston Windows. - Halt
xctestprocess if testing is cancelled.
- Accessibilty info to UI elements.
sourceLanguageelement to generated launch configurations.- Option to disable SourceKit-LSP.
- Availability of
Run Swift Plugincommand is based off all SwiftPM projects in the workspace, not just the active one.
- Only display link to Package.swift if it exists.
- In-editor display of test coverage results.
- Status Item showing test coverage percentage for current file. Can also be used to toggle display of results.
- Command
Insert Function Commentthat will add function documentation comment. - Option to disable LSP functionality for C/C++ files. Defaults to disable if C/C++ extension is active.
- Clicking on task status item will show terminal output for task.
- Tasks are run using
ProcessExecutioninstead ofShellExecution. - When SourceKit-LSP crashes multiple times, display a dialog asking if the user wants to restart it.
- Added workaround for bug in VS Code where starting two similar tasks at the same time would only start one of the tasks.
- Don't parse functions inside parenthesis when constructing function comment headers.
- Command to restart SourceKit-LSP server.
- Test Coverage Report, shown after test coverage has run. Also added command to show reports from previous text coverage runs.
- Setting of error in Test Explorer when test crashes.
- Skip second attempt at building tests when running tests.
- Parsing of test output when line is split across two text buffers.
- Parsing of skipped tests on Linux.
- Support for CMake projects. Initiates extension based off existence of compile_commands.json file.
Run command plugincommand. Brings up list of available command plugins with options to edit their parameters.- TestExplorer run profile to generate Code Coverage lcov files.
- Reorder command plugin loading to run after package resolve when loading package.
- Relax rules for test names. Old style linux tests can include spaces, commas in their names.
- Cleaned up XCTest output parsing to reduce duplicated code.
- Update node modules mocha and qs.
- Parsing of multiline error messages in XCTest. Although there are occasions where this will consider too many lines as error output.
- Losing of test item location after building package.
- Finding swift.exe if swift.path is a symbolic link.
- Show error message when extension activation fails.
allowWriteToPackageDirectoryoption to plugin tasks.
- Settings scope for a number of settings so they can be set per workspace folder. Ensure the workspace folder setting is being used. Reverted for a number of settings where per workspace folder setting was not possible.
- Check file type before running Background compilation.
- Ordering of menu entries in Swift context menu.
- Display of package dependencies where package name is different from package identity.
- Ensure we don't add folders twice at startup.
- Setting to disable automatic swift package resolve
- Swift package identity should be case-insensitive
- Reduce command line length when running tests to ensure they run on Windows
- Swift submenu is not available when editing non-Swift files
- Correctly indicate the default Xcode installation in Xcode toolchain menu
- Don't attempt to build tests when compiling for iOS, tvOS or watchOS as they don't compile
- Support for Swift Snippets (requires Swift 5.7). Two new commands have been added
Run Swift SnippetandDebug Swift Snippet. - Sub menu to text editor right click menu. Includes commands not accessible elsewhere
Run Swift Script, Snippet commands andClean Build. - macOS: Command to choose between macOS, iOS, tvOS and watchOS targets. Switching to a non macOS target will give you symbol completion for that target, but building your package will have undefined results.
- macOS: Command to choose between Swift toolchains from all versions of Xcode installed on your system.
- When working out project dependencies traverse local dependencies to get full dependency chain
- Changed settings scope for a number of settings so they can be set per workspace folder
- Store hash of
Package.resolvedto compare with newPackage.resolvedwhenever it has been updated, to ensure it has actually changed before runningswift package resolve.
- Remove
runPlugincommand stub as it does nothing - Get correct path for Swift when installed on Linux with
swiftenv
- Support multiple workspace feature of SourceKit-LSP that comes with Swift 5.7.
- Tasks for SwiftPM plugins.
- When running with Swift 5.7 or later, migrate to using official implementation of Inlay Hints.
- Cleanup Swift Task implementation, remove
commandproperty as it is alwaysswift. - Show "no tests" message instead of an error message in Test Explorer when a package has no tests.
- Finding the Swift executable on non-English Linux systems.
- Setting path to executable in
launch.jsonwhen package is in a sub-folder of the workspace. - Setting focus package at startup when the workspace only has one package.
- Crash while getting Swift version from versions 5.3 or earlier of Swift.
- Local packages not showing in Package Dependency View with Swift 5.6 or later.
- Queue Swift tasks, where we can, to ensure we don't have multiple
swiftprocesses running on the same package at the same time. - Configuration setting
buildPathto set a custom build folder. - The Test Explorer now displays additional states: test enqueued, test running and test errored.
- Upgrade to VS Code LanguageClient v8
- Increased stdio buffer sizes when running tests to reduce the chance of the process crashing because it ran out of buffer space.
- Don't run background compilation when saving
Package.swiftas it clashes with the resolve that runs at the same time. - Startup of SourceKit-LSP for single swift files in the root of a workspace.
- SourceKit-LSP server crash when opening a file that contains a space.
- Advance Setting: Swift environment variables. These are environment variables to pass to Swift operations.
- Setup of Swift LLDB on Linux.
- If Swift LLDB on Windows setup fails, then fail silently. This indicates the Swift version of LLDB has issues (as is the case in Swift < 5.7) and should not be used.
- Pass flags used in Swift build to SourceKit-LSP to avoid unnecessary project rebuilds.
- Improve error messaging when extension fails to start.
- Error message for when LLDB setup fails.
- Running non-Swift LLDB on Windows
Version 0.5.0 of vscode-swift now requires v1.65.0 of Visual Studio Code
- Language status item to bottom bar. Pressing
{}next toSwiftlabel will display current swift version and a link to thePackage.swiftfor the currently open project. - Experimental background compilation option. Whenever you save a file it will instigate a build task. This is currently defaulted to off.
- Setting to set environment variables while running tests.
- Setting to output more detailed diagnostics to Swift output pane.
- Setting to set SDK folder (supporting custom SDKs).
- Setting to set additional runtime path (supporting non-standard installation on Windows).
- More informative error messaging when Swift Package fails to load.
- Inlay hints (annotations indicating inferred types) now use the standard Visual Studio Code renderer.
- Inlay hints are enabled by default.
- Use Language client middleware to catch Document Symbol requests and use the results to update test list in TestExplorer.
- Don't send unfocus events when opening non-file based view. Means current project stays in focus and project dependencies view won't disappear.
- If user has created a custom version of a build task in
tasks.jsonthen use that when building for tests, or running background compilation. - Split settings into sections. Add SourceKit-LSP and Advanced sections.
- When updating launch.json configurations, show one dialog for each project instead of for each configuration.
- Windows: Removed dependency on
DEVELOPER_DIRenvironment variable. UseSDKROOTinstead. - Windows: Support Swift 5.7 file structure when finding XCTest.
- Tasks setup in
tasks.jsonuse the correct version of swift. - Restarting the LSP server after changing the
serverPathsetting actually uses new setting. - Windows: Test Explorer messaging when nothing is built.
- Windows: Launching of tests
- Windows: Use Swift LLDB to improve debugging experience.
- CentOS7: Fix the code finding
swift.
SourceKit-LSP: Toolchain Pathsetting. You can set this using theSwift: Pathsetting.
- Reduce chance of LSP server restart during initialization
- Build operations triggered by TestExplorer can be cancelled by TestExplorer.
- Centralize task tracking to fix issues with missing task completions.
- Issue with LSP server not starting on Linux.
- Store XCTest class locations in related TestItem. This will augment source code with an icon to run all the tests in a class.
- Cancellation support for tests. When you cancel a test the underlying process is halted (previously it was left running).
- Show Test Explorer output view as soon as testing starts.
- Option to enable/disable the auto-generation of launch.json configurations (default: on).
- Option to add compile errors to the problems view (default: on).
- Run non-debug test sessions outside of debugger. Now a crash test will not suspend inside the debugger. Also we can stream test output to the test explorer view.
- Show skipped tests as skipped, instead of passed.
- Test Explorer view: List, run and debug tests.
- Test list is built when project is compiled.
- Use LSP server to update test list when you save a file, also use these results to set location data for tests.
- Package dependency view includes project name in title.
- The package dependency view is always visible if your project has a Package.swift regardless of whether it has any dependencies.
- Don't completely destroy the Language client when changing LSP server workspace folder.
- Conditionally add
--enable-test-discoverybased on Swift version and existence ofLinuxMain.swift.
- Parsing no package error message from Swift 5.6.
- Leaving a temporary vscode-swift folder after every session. There is now one temp folder and files written into it are deleted as soon as they are no longer needed.
- Loading of Packages from Swift 5.6 projects
- Automatic generation of launch target for running tests. This is no longer needed now we have the test explorer.
- Function documentation comment completion. Type "///" on line above function to activate.
- Package dependency view has new right click menu. Menu entries include:
- Use Local Version: Use local version of package dependency.
- Add To Workspace: Add a locally edited dependency to your VS Code Workspace.
- Revert To Original Version: Revert locally edited dependency to the version in the Package.swift.
- View Repository: Open the repository web page for the dependency.
- Support for Swift packages that are in a sub-folder of your workspace.
- New command
Run Swift Scriptwhich will run the currently open file as a Swift script. - Support for building development version of package via
npm run dev-package.
- Build terminal window is cleared before a build
- When the Swift path or SourceKit-LSP path are changed the extension will restart to ensure the correct versions are used.
- Swift 5.6 will fix the issue of the LSP server not working with new files. If the Swift version is previous to 5.6 then the VS Code extension will restart the LSP server whenever a new file is added.
- The LSP server works on single Swift files outside of a Package.swift.
- Windows debug build options for generating dwarf debug output.
- Build tasks for all folders in the workspace.
- Resolve and update commands which update current folder.
- Reset package and clean build commands.
- Restart language client in correct folder when moving between folders in the workspace.
- "sourcekit-lsp.serverPath" configuration option for path to sourcekit-lsp executable.
- Status item when loading packages.
- Resolve and reset package buttons to dependency view.
- Cache contents of Package.resolved for use across different systems.
- Cleanup Language client code
- Package dependency view updates based on current folder
- Use correct workspace folder in launch.json program name
- Configuring of CodeLLDB while running in a remote container
- Automatically create build tasks based on the targets in a package.
- Show package dependencies in the Explorer.
- Package dependencies view has button to update package dependencies.
- Resolve dependencies when Package.swift or Package.resolved change.
- Integrated with the SourceKit-LSP server.
- Generate launch configurations for each executable and tests in Package.swift.
- "Swift" output channel providing a history of all actions.
- Status bar item for when resolve or update tasks are running.
- Bundle using ESBuild.
- Configuration parameter
pathto define where Swift executables are found. - Configuration parameter
buildArgumentsto add custom build arguments. - Configure CodeLLDB to work with Swift.