Skip to content

Releases: wojciech-kulik/xcodebuild.nvim

v3.4.0

25 Mar 00:41
4ebfd0a
Compare
Choose a tag to compare

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).

quick

Tip

You can use o key to jump from Test Explorer to the selected test.

What's Changed

Full Changelog: v3.3.1...v3.4.0

v3.3.1

21 Mar 09:46
22d21f7
Compare
Choose a tag to compare

🏥 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

Full Changelog: v3.3.0...v3.3.1

v3.3.0

20 Mar 22:46
8a200ec
Compare
Choose a tag to compare

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

Full Changelog: v3.2.0...v3.3.0

v.3.2.0

12 Mar 00:13
Compare
Choose a tag to compare

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

New Contributors

  • @TMTBO made their first contribution in #61

Full Changelog: v3.1.0...v3.2.0

v3.1.0

28 Feb 16:44
df0641e
Compare
Choose a tag to compare

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 using XcodebuildCodeActions by @wojciech-kulik
  • Added list_targets and add_file_to_targets to actions.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

Full Changelog: v3.0.0...v3.1.0

v3.0.0

20 Feb 12:19
Compare
Choose a tag to compare

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 using WRAPPER_NAME (#39)
  • Fixed waiting for the debugger when starting the app on a simulator

Improvements

  • Refreshed README.md

v2.4.0

16 Feb 22:39
Compare
Choose a tag to compare

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

11 Feb 16:36
Compare
Choose a tag to compare

Now Xcodebuild.nvim is integrated with nvim-tree to let you manage your project and files in a convenient way.

Every change in the file tree presented by nvim-tree will be automatically reflected in the Xcode project.

nvim-tree.mp4

v2.2.0

11 Feb 00:18
Compare
Choose a tag to compare
  • 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 and test_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

09 Feb 22:05
Compare
Choose a tag to compare
  • Showing logs in the console window provided by nvim-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.