January 21, 2024

51. Делимся кодом удобно

Часто бывает нужно скинуть кому-то свой код, но отправлять код простым текстом - не лучшее решение, т.к. будет некрасиво/неразборчиво. В этой статье покажу несколько способов как сделать лучше.

Для примера возьмем такой кусок кода:

import SWDesignSystem
import SwiftUI

/// Экран с диалогами
struct DialogsScreen: View {
  @EnvironmentObject private var defaults: DefaultsService

  var body: some View {
    NavigationView {
      ZStack {
        if defaults.isAuthorized {
          DialogListView()
        } else {
          IncognitoProfileView()
        }
      }
      .background(Color.swBackground)
      .transaction { $0.animation = nil }
      .navigationTitle("Сообщения")
      .navigationBarTitleDisplayMode(defaults.isAuthorized ? .inline : .large)
    }
    .navigationViewStyle(.stack)
  }
}

#if DEBUG
#Preview {
  DialogsScreen()
    .environmentObject(DefaultsService())
}
#endif

Telegraph

Чтобы отформатировать код в этой статье, я включил английскую раскладку клавиатуры, выделил кусок текста с кодом и нажал на кнопку со знаком `(справа от левого shift):

Форматируем код в telegra.ph

К сожалению никакой подсветки тут пока нет, но такой формат все же читать проще, чем обычный текст.

Pastebin

  1. Переходим на сайт https://pastebin.com/
  2. Вставляем код
  3. Выбираем нужные настройки внизу, в том числе язык для подсветки синтаксиса
  4. Жмем Create New Paste
  5. Копируем ссылку из адресной строки и делимся, с кем нужно
Делимся кодом с использованием pastebin.com

Ссылка на наш пример

Telegram

Телега поддерживает возможность форматирования кода при помощи спец. символов, а именно:

  1. Ставишь ```swift первой строкой (для других языков тоже работает)
  2. Вставляешь свой код со второй строки
  3. Последней строкой ставишь ```

Результат:

Пример форматирования кода в telegram с подсветкой

Github gist

Переходим по ссылке https://gist.github.com/ или нажимаем справа сверху на профиль, далее - Your gists:

Кнопка для перехода к списку gists

Создаем новый gist и можем увидеть подобную картину:

Код в gist без подсветки

Чтобы код выглядел лучше, нужно добавить расширение файла .swift:

Включаем подсветку в gist

Чтобы сохранить gist, жмем на кнопку справа снизу и выбираем, будет ли код доступен публично, или только по ссылке:

Варианты сохранения gist

Для этой статьи я использую первый вариант и gist сможет посмотреть любой человек, у которого есть ссылка на него.

Medium

В медиуме делиться кодом можно через инструмент, доступный при написании статьи:

Как поделиться кодом с подсветкой в Medium

Язык программирования может распознаться автоматически, но если не распознался - можно выбрать вручную из выпадающего списка.

Что если не форматировать?

Telegraph

import SWDesignSystem

import SwiftUI

/// Экран с диалогами

struct DialogsScreen: View {

@EnvironmentObject private var defaults: DefaultsService

var body: some View {

NavigationView {

ZStack {

if defaults.isAuthorized {

DialogListView()

} else {

IncognitoProfileView()

}

}

.background(Color.swBackground)

.transaction { $0.animation = nil }

.navigationTitle("Сообщения")

.navigationBarTitleDisplayMode(defaults.isAuthorized ? .inline : .large)

}

.navigationViewStyle(.stack)

}

}

#if DEBUG

#Preview {

DialogsScreen()

.environmentObject(DefaultsService())

}

#endif

Telegram

Код без форматирования в telegram

Medium

Не выбрали язык программирования в окне для вставки кода

Заключение

Будет здорово, если после прочтения этой статьи в чатах будет больше читаемого кода с подсветкой синтаксиса 😀

Другие статьи можно почитать тут.