Rustfmt: отключить форматирование комментариев

У меня есть следующий фрагмент кода:

/*
long explanatory comment with some ascii art etc.
*/
#[test]
fn foo() {
    //...
}

Я хочу отключить ржавчину только для моего ведущего комментария, поэтому я попробовал

#[rustfmt::skip]
/*
long explanatory comment with some ascii art etc.
*/
#[test]
fn foo() {
    // I want this to still be formatted.
}

но, к сожалению, это отключило форматирование для всей функции.

Есть ли возможность отключить форматирование только комментария? Я думаю о чем-то вроде комментариев //clang-format: off.

Кажется, я не могу заставить Rustfmt что-либо сделать с блокированным комментарием здесь, на игровой площадке (rustfmt находится в разделе «Инструменты» в правом верхнем углу). Можете ли вы привести пример? Возможно, я просто пропустил тот случай, с которым вы столкнулись.

kmdreko 31.07.2024 17:54

@kmdreko: Ах, возможно, по умолчанию это даже не проблема, но у меня в Rustfmt.toml есть следующее: max_width = 80 wrap_comments = true normalize_comments = true

ChrisB 31.07.2024 19:05

Отвечает ли это на ваш вопрос? Как отключить Rustfmt для региона кода, а не для отдельного пункта? (к сожалению, хорошего ответа нет, но это статус rustfmt, а не Stack Overflow).

Chayim Friedman 31.07.2024 19:07

@ChayimFriedman: не совсем, поскольку комментарий явно отличается от «области кода». Следовать этому ответу и обертывать комментарий модулем кажется мне безумием. Я принял полученный ответ, поскольку он, вероятно, настолько хорош, насколько это возможно.

ChrisB 31.07.2024 19:10

Комментарий — это область кода. По сути, ответ заключается в том, что сделать это невозможно, но могут быть обходные пути.

Chayim Friedman 31.07.2024 19:13

@ChayimFriedman: Я не думаю, что здесь есть смысл обсуждать семантические придирки, поэтому я не буду. Я думаю, тот факт, что ответ, который я получил здесь, не будет решением другого вопроса, должен быть достаточным доказательством различий между этими двумя вопросами.

ChrisB 31.07.2024 19:23

Хорошо, я согласен. Но это проблематично, поскольку тогда заголовок неверен. Поэтому я изменил это.

Chayim Friedman 31.07.2024 19:26
Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
0
7
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

AFAIK, на данный момент такого нет. Но вы всегда можете обойти это следующим образом:

#[rustfmt::skip]
/*
long explanatory comment with some ascii art etc.
*/
#[test]
fn foo() {
    foo_impl();
}

#[cfg(test)]
fn foo_impl() {
    // I want this to still be formatted.
}

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