-
-
Notifications
You must be signed in to change notification settings - Fork 20
Home
Neovim environment
- Neovim 0.9.5+
- telescope.nvim to present pickers.
- nui.nvim to present floating code coverage report.
- nvim-tree, neo-tree, or oil.nvim to visually manage your project files.
- nvim-dap and nvim-dap-ui to debug apps.
- nvim-treesitter + Swift parser to show test results for tests written using Quick framework.
External tools
- xcbeautify to format Xcode logs (you can set a different tool or disable formatting in the config).
- Xcodeproj to manage project files within Neovim.
- Ruby to use Xcodeproj gem.
- pymobiledevice3 to debug on physical devices and/or run apps on devices below iOS 17.
- xcode-build-server to make LSP work properly with xcodeproj/xcworkspace.
- codelldb to debug applications.
-
Xcode to build, run, and test apps. Make sure that
xcodebuild
andxcrun simctl
work correctly. Tested with Xcode 15.
return {
"wojciech-kulik/xcodebuild.nvim",
dependencies = {
"nvim-telescope/telescope.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-tree.lua", -- (optional) to manage project files
"stevearc/oil.nvim", -- (optional) to manage project files
"nvim-treesitter/nvim-treesitter", -- (optional) for Quick tests support (required Swift parser)
},
config = function()
require("xcodebuild").setup({
-- put some options here or leave it empty to use default settings
})
end,
}
Below setup
you can add some bindings. Check out here for suggested key bindings.
brew install xcode-build-server xcbeautify ruby pipx
gem install xcodeproj
pipx install pymobiledevice3
To quickly install all required tools you can run:
cd ~/.local/share/nvim/lazy/xcodebuild.nvim
make install
I wrote an article that gathers all the steps required to set up Neovim from scratch to develop iOS and macOS apps: The Complete Guide To iOS & macOS Development In Neovim. You can also check out the sample Neovim configuration that I prepared for iOS development: ios-dev-starter-nvim.
Here you can find all available integrations. Pick which one you want to use and configure them.
Optionally, you can apply this workaround to improve build time.
Make sure to open your project's root directory and run XcodebuildSetup
to configure it.
The plugin needs several information like project file, scheme, config, device, and test plan to
run commands.
Remember, that all the information are available in the help :h xcodebuild
.
Every function is documented and described both in the help and in the code.
API: If you want to use functions directly instead of user commands, then please see xcodebuild.actions module.
Useful Help Tags
:h xcodebuild
:h xcodebuild.config
:h xcodebuild.keys
:h xcodebuild.tools
:h xcodebuild.commands
:h xcodebuild.events
:h xcodebuild.highlights
:h xcodebuild.dap