Releases: wojciech-kulik/xcodebuild.nvim
v3.4.0
This release introduces significant performance improvements for running tests and refreshing test results (including Test Explorer, marks, and diagnostics in the buffer).
Another big feature is the support for tests written using Quick framework.
Important
Presenting Quick tests results requires installed nvim-treesitter (+ Swift parser).
Tip
You can use o
key to jump from Test Explorer to the selected test.
What's Changed
- fix: Test Explorer performance by @wojciech-kulik in #107
- fix: Test Explorer performance when using Quick by @wojciech-kulik in #108
- fix: overlapping actions when showing Test Explorer by @wojciech-kulik in #109
- fix: overlapping actions when using Test Explorer bindings by @wojciech-kulik in #110
- feat(tests): added support for Quick framework + optimized refreshing test results by @wojciech-kulik in #111
Full Changelog: v3.3.1...v3.4.0
v3.3.1
🏥 Hotfix for the issue with autogenerated scheme detection.
👉 If during the configuration there is only one scheme/test plan detected, it will be automatically selected.
What's Changed
- fix: scheme detection + auto-select for schemes & test plans by @wojciech-kulik in #105
Full Changelog: v3.3.0...v3.3.1
v3.3.0
This release introduces mainly bug fixes and integration improvements. Now the plugin is integrated with oil.nvim. On top of that, target auto-detection has been added, so that you don't have to select target for a new file every time.
Oil.Integration.mp4
Another significant change is how build configuration is handled. Now switching between schemes should work as expected. Build configuration selection has been removed, because now it relies on the scheme itself.
What's Changed
- fix: collecting xcodebuild logs by @wojciech-kulik in #91
- fix: parsing logs that contain "error:" phrase which is not error itself by @wojciech-kulik in #93
- fix!: handling build configurations by @wojciech-kulik in #96
- fix!: removed
XcodebuildSelectProject
command by @wojciech-kulik in #97 - feat: support for user schemes (not shared) by @wojciech-kulik in #98
- fix: incorrect showing of connected iOS devices for macOS projects by @wojciech-kulik in #99
- feat: oil.nvim integration by @wojciech-kulik in #100
- feat(project-manager): auto-select target for new files when only one… by @wojciech-kulik in #101
- feat(integrations): target auto-detection for new files by @wojciech-kulik in #102
- fix(integrations): creating groups from nvim-tree and oil.nvim by @wojciech-kulik in #102
- feat: improved performance of adding project files by @wojciech-kulik in #103
Full Changelog: v3.2.0...v3.3.0
v.3.2.0
This release is mostly about stability improvements and making it easier to configure Neovim for iOS development. Below you will find a short list of main changes:
- Improved Test Explorer (restoring tests after Neovim launch, improved Quick support, bug fixes).
- Support for macOS logs while debugging.
- Built-in configuration for nvim-dap: see README.
- I also contributed to multiple repositories to make it easier to set up nvim-lint, conform.nvim, and nvim-lspconfig (more details). Now default configurations should work well with iOS development (note: I'm still waiting for nvim-lint to merge my PR).
What's Changed
- fix: loading settings.json when .nvim folder doesn't exist by @TMTBO in #61
- feat: support for macOS app logs by @wojciech-kulik in #63
- fix: glitching Test Explorer on Neovim v0.10 (pre-release) - temporary workaround by @wojciech-kulik in #64
- fix: reading data from files by @wojciech-kulik in #65
- fix: showing multiline test failure messages by @wojciech-kulik in #67
- fix: showing Test Explorer when auto_open=false by @wojciech-kulik in #76
- feat: support for Quick (listing tests when only classes are provided) by @wojciech-kulik in #77
- fix: jumping between uncovered lines when signs are customized by @wojciech-kulik in #79
- feat: enable xcode-build-server integration by default by @wojciech-kulik in #80
- feat: keeping Test Explorer state between Neovim runs by @wojciech-kulik in #81
- chore: project/manager.lua refactoring + added tests by @wojciech-kulik in #86
- fix(project-manager): moving and renaming group at the same time by @wojciech-kulik
- chore: improved health check and README by @wojciech-kulik
- feat: built-in configurations for nvim-dap by @wojciech-kulik in #88
New Contributors
Full Changelog: v3.1.0...v3.2.0
v3.1.0
The main goal of this release was to enable the repository for contributions and I'm happy to announce that it's been achieved! In order, to make it possible, the following changes have been introduced:
- The whole code base has been documented using LuaLS annotations
- The help has been generated, 3600 lines 😱, now you don't have to go back to README to check things, most of information you can find now in the help
:h xcodebuild
or any other tag like:h xcodebuild.config
,:h xcodebuild.keys
, etc. - Refactored the code and fixed all warnings to make it ready for CI checks
- GitHub actions have been set up to ensure that pull requests opened by contributors are checked against the defined rules
- CONTRIBUTING.md file has been created to provide guidelines for new contributors and general information on how to set up the environment, what tools are used, etc.
- Created Makefile to make it easy to set up all dependencies and perform common tasks like code formatting, help update, running tests, and launching checks.
What's Changed
- Added actions that fix built-in LSP code actions. Now you can quickly fix the line with an error using
XcodebuildQuickfixLine
or show all available actions usingXcodebuildCodeActions
by @wojciech-kulik - Added
list_targets
andadd_file_to_targets
toactions.lua
by @srydell in #47 - Now starting the debugger doesn't require any visible Swift buffer by @wojciech-kulik in #49
- Added code documentation, help
:h xcodebuild
, CI configuration, and contribution guidelines by @wojciech-kulik in #50, #51 - Added option to trigger xcode-build-server on scheme change by @Almaz5200 in #52
- Added support for
:checkhealth
command + updated docs by @wojciech-kulik in #54
New Contributors
- @srydell made their first contribution in #47
- @Almaz5200 made their first contribution in #52
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Breaking Changes
👉 Renamed Log File
The file with logs has been renamed from .nvim/xcodebuild/simulator_logs.log
to .nvim/xcodebuild/app_logs.log
, as logs are now supported by both platforms.
👉 Moved dap
module
Please start using require("xcodebuild.integrations.dap")
instead of require("xcodebuild.dap")
. This module has been moved and the old location could be deleted in the future.
👉 New Dependency
Xcodebuild.nvim extends support for physical devices and debugging. If you want to use this feature make sure to install pymobiledevice3:
python3 -m pip install -U pymobiledevice3
Important
Since iOS 17, a new secure connection between Mac and mobile devices is required. Some extra steps are necessary to configure it: Debugging On iOS 17+ Device .
You can skip this dependency and extra configuration if you don't want to debug on physical devices or run the app on iOS below 17. I've included a table showing the availability of each feature (you will find it also in the README).
Device (iOS <17) | Device (iOS 17+) | via Network (<17 / 17+) | Simulator | MacOS | |
---|---|---|---|---|---|
build | 🛠️ | ✅ | ❌ / ✅ | ✅ | ✅ |
(un)install | 🛠️ | ✅ | 🛠️ / ✅ | ✅ | ❌ |
launch | 🛠️ | ✅ | 🛠️ / ✅ | ✅ | ✅ |
run tests | 🛠️ | ✅ | ❌ / ✅ | ✅ | ✅ |
debug | 🛠️ | 🔐 🛠️ | ❌ | ✅ | ✅ |
debug tests | ❌ | ❌ | ❌ | ✅ | ✅ |
app logs | 🪲 | 🪲 | ❌ | ✅ | ❌ |
🔐 - requires passwordless sudo
permission for tools/remote_debugger
script (see below).
🛠️ - available if pymobiledevice3 is installed.
🪲 - available while debugging.
New Features
- Support for physical devices with iOS below 17
- Debugging on physical devices
- Added "Install Application" action (
XcodebuildInstallApp
).
Fixes
- Fixed support for projects that override the
.app
bundle name usingWRAPPER_NAME
(#39) - Fixed waiting for the debugger when starting the app on a simulator
Improvements
- Refreshed README.md
v2.4.0
New Features
- Now you can run, uninstall, and test apps on physical devices!
<C-r>
binding in the device picker to refresh the list of devices- Added
vim.g.xcodebuild_last_status
global variable - Added
XcodebuildOpenInXcode
command to open the project in Xcode - Created tips & tricks collection for development in Neovim
Improvements
- Improved lualine integration
- Improved error handling
- Improved presentation of code coverage report
- Refreshed README.md
Fixes
- Fixed support for projects with whitespaces in path and/or name
- Fixed issue with appearing logs panel even if it was disabled in the config
- Fixed attempt to load project data even if the plugin is not configured (occurred while opening test files)
v2.3.0
v2.2.0
- Improved nvim-dap integration. Now you can debug tests by running
require("xcodebuild.dap").debug_tests()
. - Improved debugger start. Now you don't have to be in a buffer with Swift file. It's enough to have it in any visible window.
- Fixed filtering on Telescope picker. Now your local filter won't affect xcodebuild.nvim causing unexpected behavior.
- Added new config options:
test_explorer.open_expanded
andtest_explorer.auto_focus
.
Sample binding
vim.keymap.set("n", "<leader>dt", require("xcodebuild.dap").debug_tests, { desc = "Debug Tests" })
Tip
You can also debug smaller scope tests: debug_target_tests
, debug_class_tests
, debug_func_test
, debug_selected_tests
, debug_failing_tests
.
v2.1.0
- Showing logs in the
console
window provided bynvim-dap-ui
plugin (it's also possible to show logs in the terminal) - Improved sorting of errors & warnings on the quick-fix list (note that you can use
:cn
and:cp
commands to navigate between them across the project) - Fixed minor issues
- Improved documentation
If you want to learn more about logs please see Simulator Logs section.