feat(git): `Plugin.submodules = false` will now skip fetching git submodules

This commit is contained in:
Folke Lemaitre 2023-02-12 12:56:42 +01:00
parent 4917222c7e
commit 0d3f2c4042
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
3 changed files with 15 additions and 4 deletions

View File

@ -99,6 +99,7 @@ require("lazy").setup({
| **commit** | `string?` | Commit of the repository |
| **version** | `string?` | Version to use from the repository. Full [Semver](https://devhints.io/semver) ranges are supported |
| **pin** | `boolean?` | When `true`, this plugin will not be included in updates |
| `submodules` | `boolean?` | When false, git submodules will not be fetched. Defaults to `true` |
| **event** | `string?` or `string[]` or `fun(self:LazyPlugin, event:string[]):string[]` | Lazy-load on event. Events can be specified as `BufEnter` or with a pattern like `BufEnter *.lua` |
| **cmd** | `string?` or `string[]` or `fun(self:LazyPlugin, cmd:string[]):string[]` | Lazy-load on command |
| **ft** | `string?` or `string[]` or `fun(self:LazyPlugin, ft:string[]):string[]` | Lazy-load on filetype |

View File

@ -70,10 +70,11 @@ M.clone = {
args[#args + 1] = "--filter=blob:none"
end
vim.list_extend(args, {
"--recurse-submodules",
"--progress",
})
if self.plugin.submodules ~= false then
args[#args + 1] = "--recurse-submodules"
end
args[#args + 1] = "--progress"
if self.plugin.branch then
vim.list_extend(args, { "-b", self.plugin.branch })
@ -158,6 +159,10 @@ M.fetch = {
"--progress",
}
if self.plugin.submodules == false then
table.remove(args, 2)
end
self:spawn("git", {
args = args,
cwd = self.plugin.dir,
@ -209,6 +214,10 @@ M.checkout = {
"--recurse-submodules",
}
if self.plugin.submodules == false then
table.remove(args, 3)
end
if lock then
table.insert(args, lock.commit)
elseif target.tag then

View File

@ -37,6 +37,7 @@
---@field commit? string
---@field version? string
---@field pin? boolean
---@field submodules? boolean Defaults to true
---@class LazyPluginBase
---@field [1] string?