mirror of
https://github.com/LazyVim/LazyVim.git
synced 2026-07-25 14:01:06 +00:00
feat: add swift lang plugin
This commit is contained in:
parent
f8268faa7c
commit
e611c3ee6b
1 changed files with 90 additions and 0 deletions
90
lua/lazyvim/plugins/extras/lang/swift.lua
Normal file
90
lua/lazyvim/plugins/extras/lang/swift.lua
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
opts.ensure_installed = opts.ensure_installed or {}
|
||||
vim.list_extend(opts.ensure_installed, { "swift" })
|
||||
end,
|
||||
},
|
||||
|
||||
-- {
|
||||
-- "williamboman/mason.nvim",
|
||||
-- optional = true,
|
||||
-- opts = function(_, opts)
|
||||
-- opts.ensure_installed = opts.ensure_installed or {}
|
||||
-- vim.list_extend(opts.ensure_installed, {
|
||||
-- "swiftlint", -- Required by nvim-lint swiftlint
|
||||
-- "swiftformat", -- Required by confirm.nvim swiftformat
|
||||
-- "xcbeautify", -- Required by xcodebuild.nvim
|
||||
-- "xcode-build-server" -- Required by nvim-lspconfig sourcekit
|
||||
-- })
|
||||
-- end,
|
||||
-- },
|
||||
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
sourcekit = {
|
||||
root_dir = function(filename, _)
|
||||
local util = require("lspconfig.util")
|
||||
return util.root_pattern("buildServer.json")(filename)
|
||||
or util.root_pattern("*.xcodeproj", "*.xcworkspace")(filename)
|
||||
or util.find_git_ancestor(filename)
|
||||
or util.root_pattern("Package.swift")(filename)
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"mfussenegger/nvim-lint",
|
||||
opts = {
|
||||
linters_by_ft = {
|
||||
swift = { "swiftlint" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
formatters_by_ft = {
|
||||
swift = { "swiftformat" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"wojciech-kulik/xcodebuild.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
config = function()
|
||||
require("xcodebuild").setup({
|
||||
code_coverage = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>xl", "<cmd>XcodebuildToggleLogs<cr>", { desc = "Toggle Xcodebuild Logs" })
|
||||
vim.keymap.set("n", "<leader>xb", "<cmd>XcodebuildBuild<cr>", { desc = "Build Project" })
|
||||
vim.keymap.set("n", "<leader>xr", "<cmd>XcodebuildBuildRun<cr>", { desc = "Build & Run Project" })
|
||||
vim.keymap.set("n", "<leader>xt", "<cmd>XcodebuildTest<cr>", { desc = "Run Tests" })
|
||||
vim.keymap.set("n", "<leader>xT", "<cmd>XcodebuildTestClass<cr>", { desc = "Run This Test Class" })
|
||||
vim.keymap.set("n", "<leader>X", "<cmd>XcodebuildPicker<cr>", { desc = "Show All Xcodebuild Actions" })
|
||||
vim.keymap.set("n", "<leader>xd", "<cmd>XcodebuildSelectDevice<cr>", { desc = "Select Device" })
|
||||
vim.keymap.set("n", "<leader>xp", "<cmd>XcodebuildSelectTestPlan<cr>", { desc = "Select Test Plan" })
|
||||
vim.keymap.set("n", "<leader>xc", "<cmd>XcodebuildToggleCodeCoverage<cr>", { desc = "Toggle Code Coverage" })
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>xC",
|
||||
"<cmd>XcodebuildShowCodeCoverageReport<cr>",
|
||||
{ desc = "Show Code Coverage Report" }
|
||||
)
|
||||
vim.keymap.set("n", "<leader>xq", "<cmd>Telescope quickfix<cr>", { desc = "Show QuickFix List" })
|
||||
end,
|
||||
},
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue