Маркер без форматирования/отступов (Magnolia) с Intellij

Я разрабатываю «Свободный маркер» (.ftl) в Magnolia CMS и хочу, чтобы они правильно « переформатировали и отступали » (используя IntelliJ). Я работаю над существующим проектом с очень плохими файлами с отступами и не могу «очистить» код.

Я уже пробовал использовать стандартные функции «Переформатировать код» и «Автоматический отступ строк», но результат все равно очень плохой.

Следующий код — это то, что у меня есть и что я получаю:

      <div class="[#if condition]class1[/#if]" id="my-id" [#if condition]data-test="true"[/#if]>
                        <div>
                             <div>
                                  <section class="">
                                  <div>
                                       <div>
                                            <div>
                                              [#if someCondition][
                                                <span>Lorem Ipsum</span>
                                              [/#if]
                                            </div>
                                         <div>
                                                <span>Lorem Ipsum</span>
                                            </div>
                                        </div>
                                  </div>
                                  </section>
                   <div id="container">
                  </div>
     </div>
    </div>
                    </div>
  <script defer src="/something/source.js"></script>

Следующий код — это то, что я ожидал:

      <div class="[#if condition]class1[/#if]" id="my-id" [#if condition]data-test="true"[/#if]>
  <div>
    <div>
      <section class="">
        <div>
          <div>
            <div>
              [#if someCondition][
                <span>Lorem Ipsum</span>
              [/#if]
            </div>
            <div>
              <span>Lorem Ipsum</span>
            </div>
          </div>
        </div>
      </section>
      <div id="container">
      </div>
    </div>
  </div>
</div>
<script defer src="/something/source.js"></script>

1 ответ

Лучший способ управления отступами для FTL в IDE, который я нашел, — это использовать файл.

Создайте файл в корне вашего проекта с именем и добавьте следующее:

      
[*]
insert_final_newline = true
indent_style = space
indent_size = 4
end_of_line = lf

[*.{yaml,yml}]
indent_size = 3

[*.ftl]
indent_size = 2

Отрегулируйте по вкусу. Это работает в большинстве основных IDE, включая Intellij. Следует отметить, что это все еще не совсем идеально, поскольку блоки [#ftl] отступают слишком глубоко, но это огромное улучшение, которое может обеспечить достаточное улучшение, чтобы удовлетворить ваши потребности в макете кода.

Дальнейшего улучшения можно добиться, изменив конфигурацию HTML внутри IntelliJ. Перейдите в «Настройки» > «Редактор» > «Стиль кода» > «HTML» и уменьшите отступ со значения по умолчанию, равного 4, и отступ продолжения с 8 до любого значения, которое вам подходит. К сожалению, нет возможности установить их в файл.

Если вы можете жить с отступом 4, то вам не нужно будет менять настройки в IntelliJ. Если вы делитесь папкой .idea через систему контроля версий, это не проблема. Вы можете совершить.editorconfigфайл в Git (или другую систему контроля версий) и стандартизируйте отступы для всех разработчиков проекта, что поможет в долгосрочной перспективе.

Другие вопросы по тегам