Как сложить контрольные операторы с препроцессорами в них? - PullRequest
0 голосов
/ 24 января 2019

Недавно я работал над некоторым унаследованным кодом некоторых коллег, используя код Visual Studio, и я смог преобразовать его в такой разумный и читаемый формат C.Однако я хотел бы сложить некоторые контрольные операторы, так как те, которые написаны моими коллегами, иногда превышают 100 строк.

В этих строках я добавил операторы управления препроцессора для включения и отключения моих изменений.

В коде Visual Studio я могу красиво свернуть код, но он останавливается, как только он достигаетоператор препроцессора, по крайней мере #ifdef и #ifndef.Так как есть примерно 1 на каждые 10 строк, чтобы сложить одну контрольную инструкцию, мне нужно сгибать 10 раз, что-то вроде идеи, лежащей в основе этого, верно?

Я пробовал искать сгибы и коллапсы в настройках и некоторое приближение, но я не могу найти ничего, что могло бы решить мои проблемы.

Например, у меня есть этот фрагмент

if(true)
{
    Some functions();
#ifdef DEBUG
    Functions with debugging only();
#else
    Functions without debugging only();
#endif
    Some other functions();
}

Я ожидаю, всякий раз, когда я сбрасываю, если (верно), что все в этом контролеЗаявление свернуто.Это то, к чему я привык и что произойдет в vs2017 в Eclipse.Этого не происходит в VSCODE!Вместо этого только некоторые функции ();

Как сделать поведение свертывания VSCODE аналогичным поведению других IDE?

1 Ответ

0 голосов
/ 24 января 2019

Похоже, ваш редактор использует сворачивание на уровне отступа.

Согласно https://code.visualstudio.com/docs/editor/codebasics#_folding:

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

Начиная с версии 1.22, диапазоны складывания также могут быть рассчитаны на основе синтаксические токены настроенного редактором языка. Следующие языки уже обеспечивают свертывание с учетом синтаксиса:

  • Уценка, HTML, CSS, LESS, SCSS и JSON

Возможно, есть плагины для поддержки свертывания синтаксиса для других языков. Если нет, то в качестве обходного пути вы можете сделать отступ строки препроцессора.

...