bundle/vscode_extension_dumper: typed: strict

This commit is contained in:
Ruoyu Zhong 2025-08-21 01:14:31 +08:00
parent 19d160bfc2
commit 1a45660194
No known key found for this signature in database

View File

@ -1,14 +1,17 @@
# typed: true # rubocop:todo Sorbet/StrictSigil # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
module Homebrew module Homebrew
module Bundle module Bundle
module VscodeExtensionDumper module VscodeExtensionDumper
sig { void }
def self.reset! def self.reset!
@extensions = nil @extensions = nil
end end
sig { returns(T::Array[String]) }
def self.extensions def self.extensions
@extensions ||= T.let(nil, T.nilable(T::Array[String]))
@extensions ||= if Bundle.vscode_installed? @extensions ||= if Bundle.vscode_installed?
Bundle.exchange_uid_if_needed! do Bundle.exchange_uid_if_needed! do
`"#{Bundle.which_vscode}" --list-extensions 2>/dev/null` `"#{Bundle.which_vscode}" --list-extensions 2>/dev/null`
@ -18,6 +21,7 @@ module Homebrew
end end
end end
sig { returns(String) }
def self.dump def self.dump
extensions.map { |name| "vscode \"#{name}\"" }.join("\n") extensions.map { |name| "vscode \"#{name}\"" }.join("\n")
end end