Можно ли использовать переменные и заполнители в сниппетах кода Xcode?

«Можно ли использовать переменные и заполнители в сниппетах кода Xcode?» — вопрос из категории Other, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, сниппеты кода в Xcode поддерживают заполнители (placeholders) и токены для динамического ввода и подсказок.

Синтаксис заполнителей:

// Базовый заполнитель
let <#variableName#> = <#initialValue#>

// Заполнитель с пояснением и типом
let <#T##title: String##String#> = "Hello"
// При вставке пользователь увидит: "title: String"

Практический пример создания сниппета:

  1. Выделите код в редакторе.
  2. Перетащите его в библиотеку сниппетов (нижняя часть панели Library, Cmd+Shift+L).
  3. В настройках сниппета задайте:
    • Title: Создать сетевой запрос
    • Completion Shortcut: netreq
    • Language: Swift
    • Snippet:
      func fetch<T: Decodable>(from urlString: String) async throws -> T {
      guard let url = URL(string: urlString) else {
      throw URLError(.badURL)
      }
      let (data, _) = try await URLSession.shared.data(from: url)
      return try JSONDecoder().decode(T.self, from: data)
      }

Системные токены (доступны через меню { }):

  • <#...#> — стандартный заполнитель.
  • <#T##Type##TypeName#> — заполнитель с подсказкой типа.
  • <#T##x: Int##Int#> — заполнитель с именем и типом.
  • #file, #function, #line — вставляются как литералы.

Работа с заполнителями: После вставки сниппета нажмите Tab для перехода между заполнителями и Enter для завершения редактирования.