Как настроить intellij-idea не форматировать какую-то часть кода?

В html файле используется некоторый код для использования пользовательского шаблона-шаблона:

<script type="text/javascript">
    function ($scope, JsRoutes) {
        $scope.rows = [
            ${"#{list rows, as: 'row', separator: ','}"}
            {
            #{list fieldConfigs, as: 'f', separator: ','}
            ${f.name} : ${'$'}{row.${f.name}.toJson()}#{/list}
            }
            ${'#{/list}'}
        ]
    }
</script>

Можно ли настроить intellij-идею не форматировать ее (но форматировать другую часть документа)? Поскольку идея будет трудно читать после форматирования:

<script type="text/javascript">
    function ($scope, JsRoutes) {
        $scope.rows = [
            ${"#{list rows, as: 'row', separator: ','}"}
            {
    #{list fieldConfigs, as: 'f', separator: ','}
    ${f.name} :
        ${'$'}{
            row.${f.name}.toJson()
        }#{/list}
    }
    ${'#{/list}'}
    ]
    }
</script>

Ответ 1

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

markers

После включения этой функции в настройках добавьте //@formatter:off в начале своего региона и //@formatter:on в конце.

Это маркеры по умолчанию, и они настраиваются.

вы можете найти более подробную информацию и примеры в документации:


Оригинальный ответ 2012 года:

Пока это невозможно, пожалуйста, проголосуйте за эту функцию:

  • IDEA-56995 Отключить форматирование кода для региона с помощью комментариев

Ответ 2

В моей версии EAP 13.1 вы должны включить следующий параметр в настройках,

PreferencesCode StyleGeneralFormatter ControlEnable formatter markers in comments

прежде чем вы сможете использовать эти комментарии,

// @formatter:off

// @formatter:on 

или они (в зависимости от языка):

<[email protected]:off-->

<[email protected]:on-->

Скриншот:

Screenshot highlighting the checkbox for Enable formatter markers in comments under Preferences

Ответ 3

Так как EAP 13, вы можете запустить форматирование со следующими комментариями:

// @formatter:off
...
// @formatter:on 

Чтобы включить его в "surround with", вы можете определить Live Template в разделе "surround":

// @formatter:off
$SELECTION$
// @formatter:off

Вы можете найти эти настройки в SettingsCode StyleGeneral и установить собственные триггерные слова.

Ответ 4

Стоит отметить, что элемент управления форматированием не работает в комментариях javadoc. Это должно быть либо в регулярном комментарии стиля C, либо в С++. Итак, // @formatter:off работает /* @formatter:off */, но /** @formatter:off */ не работает.