Как вы измените, как intellij авто форматирует код? [закрыто]

13

IntelliJ делает странное форматирование с помощью кода Javascript, и я пытаюсь выяснить, как заставить его перестать форматировать таким образом. Всякий раз, когда я соединяю функции jQuery вместе, он ставит поверх автоматически созданного кода, такого как этот

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
        /* this is where the cursor and closing braces end up */
        })

Я хочу, чтобы это выглядело так:

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
    /* cursor and closing braces indented normally */
});

Как мне это изменить?

intargc
источник
Исправления здесь не работали для меня, поэтому я связался с реактивными мозгами, и они открыли проблему. Пожалуйста, проголосуйте за это здесь: youtrack.jetbrains.com/issue/WEB-15066
JonnyRaa
4
Я голосую за то, чтобы закрыть этот вопрос как не по теме, поскольку речь идет о программном инструменте, однако он слишком стар, чтобы перейти на переполнение стека.

Ответы:

11

Как упоминает @intarg, в комментариях. Вы можете изменить File|Settings|Code Style|Generalи на вкладке Javascript установить Continuation Indentзначение 0 для Javascript.

Это даст вам большую часть того, что вы хотите. проблема в том, что ваш код на самом деле всего 1 длинный оператор.

$('#something').focus(
function() {
    /* Do some stuff */
}).blur(function() {
    /* this is where the cursor and closing braces end up */
})

Не уверен, что есть соответствующая опция, чтобы предотвратить разрыв строки после focus(

Да, и убедитесь, что у вас активна вкладка «Образец кода Javascript» при изменении параметров, иначе вы не измените их для Javascript.

РЕДАКТИРОВАТЬ: Теперь, когда я посмотрел дальше. Форматировщик Javascript кодируется для добавления переноса строки в этом конкретном случае, для него нет возможности.

Сильванаар
источник
Это не работает для меня - я все еще испытываю боковое
колебание,
0

Все настройки, необходимые для управления форматированием кода в intellij, находятся в меню «Файл»> «Другие настройки»> «Настройки шаблона».

Если Javascript нет в списке (т.е. вы не установили плагин Javascript), вы можете определить форматирование кода на вкладке «Общие», а затем на вкладке «Прочее». Будут варианты для управления отступом и интервалом.

Пустынная планета
источник
Я думаю, проблема в том, что она считает, что функция из .blur () является отступом продолжения. Единственный способ, которым я могу помешать этому, состоит в том, чтобы установить для продолжения отступ в 0, но это также делает другой код плохим. Вы случайно не знаете, как сказать, что это не продолжение, или происходит что-то внутреннее?
intargc
Вы установили плагин Javascript в intellij? Я знаю, что есть несколько доступных. Если вы не используете какой-либо из них, среда IDE просто откажется от стандартного отступа / интервала. В идеале вы должны использовать плагин, чтобы среда IDE знала об этих конструкциях.
Пустынная планета
Вы пробовали реактивный мозг? Кроме того, вы пытались сделать это с Eclipse. Я не затрагивал intellij некоторое время, но я знаю, что Eclipse имеет довольно хорошую поддержку плагинов и достаточно легко контролировать отступы, но у вас действительно не должно быть проблем с intellij.
Пустынная планета
Поскольку версия сообщества имеет открытый исходный код, вы всегда можете получить исходный код, создать его и вставить точки останова, где он выполняет форматирование, чтобы исключить наличие внутренней проблемы. Если это не делает то, что вы хотите, примените исправление и отправьте патч одному из владельцев репо, если у вас есть время и желание сделать это :)
Desolate Planet
У меня действительно установлен плагин javascript. Я попробую реактивный мозг и посмотрю, есть ли у кого-нибудь подсказка. Благодарю.
intargc