GOOGLE ADS

суббота, 7 мая 2022 г.

Форматировать аргументы многострочного строкового литерала без лишних строк

Я хотел бы вызывать макросы с одним многострочным строковым аргументом, отформатированным так:

css!(r"
background: grey;
color: white;
");

Однако Rustfmt настаивает на размещении строкового литерала в отдельной строке, что некрасиво и занимает больше места:

css!(
r"
background: grey;
color: white;
"
);

Есть ли способ заставить Rustfmt не помещать один строковый литерал в отдельную строку, даже если он состоит из нескольких строк?

Я знаю, что Rustfmt можно настроить, но я не смог найти для этого опцию, да и не знаю, что искать.


Решение проблемы

Вы можете использовать #[rustfmt::skip], чтобы указать rustfmt не форматировать код:

#[rustfmt::skip]
css!(r"
background: grey;
color: white;
");

rustfmt также пропускает макросы в фигурных скобках, так что вы можете сделать:

css! { r"
background: grey;
color: white;
" };

Вы также можете использовать #[rustfmt::skip::macros(...)], чтобы всегда пропускать этот макрос:

#[rustfmt::skip::macros(css)]
fn foo() {... }

Чтобы применить его ко всему файлу (см. Есть ли стабильный способ указать Rustfmt пропустить весь файл ), вы можете либо применить его к объявлению модуля, либо использовать внутренний атрибут, но это нестабильно:

#![feature(custom_inner_attributes)]
#![rustfmt::skip::macros(css)]

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...