diff --git a/lua/astrocommunity/pack/swift/README.md b/lua/astrocommunity/pack/swift/README.md new file mode 100644 index 000000000..4d59680ca --- /dev/null +++ b/lua/astrocommunity/pack/swift/README.md @@ -0,0 +1,32 @@ +# Swift Language Pack + +## Note: xbase is a WIP plugin, and the experience provided by this plugin might be lackluster + +**Requirements:** + +1. Make sure you have [sourcekit-lsp](https://github.com/apple/sourcekit-lsp) installed on your machine. + +2. Install Xcode Device Simulators: + To enable simulator functionality from within Neovim, you need to have Xcode Device Simulators installed on your machine. You can install these simulators from Xcode. + +3. Mappings: + The default mappings for the xbase plugin overlap with AstroNvim's default. Therefore, you should set the mappings yourself. + Refer to [xBase](https://github.com/kkharji/xbase#neovim-3) documentation for more options. + +```lua +opts = { + -- ... (other options) + + mappings = { + enable = true, + build_picker = "rb", -- Set to 0 to disable + run_picker = "ra", -- Set to 0 to disable + watch_picker = 0, -- Set to 0 to disable + all_picker = 0, -- Set to 0 to disable + toggle_split_log_buffer = 0, + toggle_vsplit_log_buffer = "rs", + }, + + -- ... (other options) +} +``` diff --git a/lua/astrocommunity/pack/swift/init.lua b/lua/astrocommunity/pack/swift/init.lua new file mode 100644 index 000000000..237655a1d --- /dev/null +++ b/lua/astrocommunity/pack/swift/init.lua @@ -0,0 +1,43 @@ +local utils = require "astronvim.utils" + +return { + { + "xbase-lab/xbase", + ft = { + "swift", + "objcpp", + "objc", + }, + run = "make install", -- or "make install && make free_space" (not recommended, longer build time) + dependencies = { + "neovim/nvim-lspconfig", + -- "nvim-telescope/telescope.nvim", -- optional + -- "nvim-lua/plenary.nvim", -- optional/requirement of telescope.nvim + -- "stevearc/dressing.nvim", -- optional (in case you don't use telescope but something else) + }, + init = function() require("astronvim.utils.lsp").setup "sourcekit-lsp" end, + }, + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + local nls = require "null-ls" + if type(opts.sources) == "table" then + vim.list_extend(opts.sources, { + nls.builtins.formatting.swift_format, + }) + end + end, + }, + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if opts.ensure_installed ~= "all" then + opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, "swift") + end + end, + }, + { + "jay-babu/mason-nvim-dap.nvim", + opts = function(_, opts) opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, "codelldb") end, + }, +}