Переход на стиль кода Kotlin
Соглашения по написанию кода на Kotlin и форматтер IntelliJ IDEA
Соглашения по написанию кода на Kotlin влияют на несколько аспектов написания идиоматичного кода на Kotlin. Среди них — рекомендации по форматированию, призванные повысить читаемость кода Kotlin.
Раньше встроенный в IntelliJ IDEA форматтер кода по умолчанию использовал настройки, которые обеспечивали форматирование, отличающееся от рекомендуемого сейчас.
Мы хотим устранить это несоответствие, изменив настройки по умолчанию в IntelliJ IDEA и приведя форматирование в соответствие с соглашениями по написанию кода на Kotlin. Поэтому был реализован следующий план перехода:
Начиная с Kotlin 1.3.0, официальное форматирование кода по умолчанию включено только для новых проектов (старое форматирование можно включить вручную).
Авторы существующих проектов могут перейти на соглашения по написанию кода на Kotlin.
Авторы существующих проектов могут явно указать, что в проекте используется старый стиль кода (в этом случае на проект не повлияет изменение настроек по умолчанию в будущем).
Начиная с Kotlin 1.4.0, форматирование по умолчанию включено для всех проектов, чтобы привести его в соответствие с соглашениями по написанию кода на Kotlin.
Отличия между «Соглашениями по написанию кода на Kotlin» и «Стилем кода IntelliJ IDEA по умолчанию»
Самое заметное изменение касается правил отступов для продолжения строк. Идея использовать двойной отступ, чтобы показать, что многострочное выражение не завершилось на предыдущей строке, весьма удачна. Это простое и универсальное правило, но при таком форматировании некоторые конструкции Kotlin выглядят немного неуклюже. В соглашениях по написанию кода на Kotlin рекомендуется использовать одинарный отступ в случаях, для которых раньше применялся увеличенный отступ продолжения строки.
На практике это затрагивает довольно много кода, поэтому такое изменение можно считать масштабным обновлением стиля кода.
Обсуждение перехода на новый стиль кода
Переход на новый стиль кода может пройти совершенно естественно, если начать с нового проекта, в котором нет кода, отформатированного по старым правилам. Поэтому начиная с версии 1.3.0 плагин Kotlin для IntelliJ создает новые проекты с форматированием из документа «Соглашения по написанию кода», включенным по умолчанию.
Изменение форматирования в существующем проекте — гораздо более сложная задача, и, вероятно, ее следует начать с обсуждения всех нюансов с командой.
Главный недостаток изменения стиля кода в существующем проекте заключается в том, что функция VCS для просмотра авторства (blame/annotate) будет чаще указывать на нерелевантные коммиты. Хотя в каждой VCS предусмотрен способ решения этой проблемы (в IntelliJ IDEA можно использовать функцию «Аннотировать предыдущую ревизию»), важно решить, стоит ли новый стиль затраченных усилий. Если отделять коммиты с переформатированием от содержательных изменений, это значительно упростит последующий анализ.
Кроме того, переход может оказаться сложнее для крупных команд: коммиты со множеством файлов в нескольких подсистемах могут привести к конфликтам слияния в личных ветках. Хотя разрешение каждого конфликта обычно не представляет сложности, стоит выяснить, есть ли сейчас в работе крупные функциональные ветки.
В целом для небольших проектов мы рекомендуем преобразовать все файлы сразу.
Для средних и крупных проектов принять решение может быть непросто. Если вы не готовы сразу обновить множество файлов, можно переходить постепенно, модуль за модулем, или изменять форматирование только в файлах, которые редактируются.
Переход на новый стиль кода
Переключиться на стиль кода, соответствующий соглашениям по написанию кода на Kotlin, можно в диалоговом окне Настройки/Параметры | Редактор | Стиль кода | Kotlin. Переключите схему на Проект и выберите Задать на основе... | Руководство по стилю Kotlin.
Чтобы поделиться этими изменениями со всеми разработчиками проекта, папку .idea/codeStyle необходимо добавить в VCS.
Если для настройки проекта используется внешняя система сборки и было решено не добавлять папку .idea/codeStyle в VCS, соглашения по написанию кода на Kotlin можно принудительно включить с помощью дополнительного свойства:
В Gradle
Добавьте свойство kotlin.code.style=official в файл gradle.properties в корневой папке проекта и добавьте этот файл в VCS.
В Maven
Добавьте свойство kotlin.code.style official в корневой файл проекта pom.xml.
<properties> <kotlin.code.style>official</kotlin.code.style> </properties>
После обновления настроек стиля кода выберите нужный диапазон в окне проекта и примените команду Переформатировать код.
Для постепенного перехода можно включить проверку Файл не отформатирован в соответствии с настройками проекта. Она выделит места, которые следует переформатировать. После включения параметра Применять только к измененным файлам проверка будет показывать проблемы форматирования только в измененных файлах. Вероятно, вскоре такие файлы все равно будут добавлены в коммиты.
Сохранение старого стиля кода в проекте
Можно явно указать, что стиль кода IntelliJ IDEA является правильным стилем кода для проекта:
В разделе Настройки/Параметры | Редактор | Стиль кода | Kotlin переключитесь на схему Проект.
Откройте вкладку Загрузка и сохранение и в поле Использовать настройки по умолчанию из выберите Устаревший стиль кода Kotlin для IntelliJ IDEA.
Чтобы поделиться изменениями со всеми разработчиками проекта, папку .idea/codeStyle необходимо добавить в VCS. Для проектов, настроенных с помощью Gradle или Maven, также можно использовать параметр kotlin.code.style=obsolete.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/code-style-migration-guide.html