diff --git a/lua/astrocommunity/pack/swift/README.md b/lua/astrocommunity/pack/swift/README.md index b7ba5a360..661603fa6 100644 --- a/lua/astrocommunity/pack/swift/README.md +++ b/lua/astrocommunity/pack/swift/README.md @@ -1,38 +1,34 @@ # Swift Language Pack -## Note +Requires: -xbase is a WIP plugin, and the experience provided by this plugin might be -lackluster. +- [sourcekit-lsp](https://github.com/apple/sourcekit-lsp) -## Requirements +This plugin pack does the following: -1. Make sure you have [sourcekit-lsp](https://github.com/apple/sourcekit-lsp) - installed on your machine. +- Adds `swift` Treesitter parsers +- Adds `sourcekit` in LSP servers +- Adds `sourcekit` in LSP config +- Adds `codelldb` for debugging -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. +## SwiftLint and SwiftFormat -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. +When it comes to linting and formatting, Swift is not standardized yet. Thus, +you need to set your favorite configuration in `user/null-ls.lua`. For example: ```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) -} +[...] + config.sources = { + -- Set a formatter + null_ls.builtins.formatting.swiftformat, -- https://github.com/nicklockwood/SwiftFormat + -- null_ls.builtins.formatting.swift_format, -- https://github.com/apple/swift-format + + -- Set a linter + null_ls.builtins.diagnostics.swiftlint, + } +[...] ``` + +Make sure to install [SwiftLint](https://github.com/realm/SwiftLint) and either +one of [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) **OR** [Apple's +Swift-Format](https://github.com/apple/swift-format). diff --git a/lua/astrocommunity/pack/swift/init.lua b/lua/astrocommunity/pack/swift/init.lua index 76e1794dc..591d5fbc9 100644 --- a/lua/astrocommunity/pack/swift/init.lua +++ b/lua/astrocommunity/pack/swift/init.lua @@ -1,23 +1,6 @@ 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" end, - }, - { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) @@ -26,9 +9,12 @@ return { end end, }, - { "jay-babu/mason-nvim-dap.nvim", opts = function(_, opts) opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, "codelldb") end, }, + { + "williamboman/mason-lspconfig.nvim", + init = function() require("astronvim.utils.lsp").setup "sourcekit" end, + }, }