Свертывание кода VS на основе скобок - не отступ - PullRequest
0 голосов
/ 27 ноября 2018

Здравствуйте, сообщество Stackoverflow,

Это мой первый пост здесь.Я использую VS Code и в настоящее время ищу способ включить свертывание методов и функций по умолчанию, например, функцию, доступную в PHPStorm.Я посмотрел здесь и нашел несколько постов, показывающих, что вы можете сложить весь код или уровни отступов, как описано здесь: https://stackoverflow.com/a/30077543/10713286 Однако я ищу способ сложить функции и методы, используя соответствующие скобки в качестве метода складывания.вместо отступа или использования //#region и //#endregion.В идеале это может быть по умолчанию, и я мог бы развернуть код по мере необходимости.PHPStorm делает это красиво и оставляет метод документации и комментарии к функциям развернутыми в качестве опции.Я думаю, что это может быть необходимо сделать, написав расширение.У меня проблемы с поиском способа сделать это все же.Я вытащил git-репозиторий VS Code и запустил поиск по grep, чтобы обнаружить, что метод сворачивания (для php) установлен в vscode/extensions/php/package.nls.json:3vscode/extensions/php/snippets/php.snippets.json есть настройки #region и #endregion в строках 243 и 250. Проблема в том, что сворачивание задано с помощью регулярного выражения, и я не могу найти способ сопоставить скобки, используя только регулярное выражение.

Это важная особенность для меня, потому что я изучаю новую кодовую базу и наличие сворачивания функций / методов действительно улучшает читаемость больших файлов.Я могу быстро сканировать то, что мне нужно, и расширять по мере необходимости.VS Code пытается это сделать, но если в функции есть какие-то преднамеренно устаревшие строки, например, чтобы сделать комментарий более очевидным, VS Code останавливается там, а не до конца функции.Любая помощь в этом вопросе с благодарностью !!

tldr;Мне нужно найти способ сложить код, основанный на соответствующих скобках, а не на отступе в VS Code.

1 Ответ

0 голосов
/ 28 ноября 2018

VS Code имеет два способа обработки свертывания для языка:

  • На основе отступов (плюс базовая поддержка #region).Это работает из коробки для многих языков, но довольно просто.Он только смотрит на отступы, чтобы определить, как код должен быть свернут

  • свертывание кода с учетом синтаксиса .Это должно быть реализовано для каждого языка.Код VS поставляется с поддержкой синтаксического сворачивания для javascript, typcript, html, css, json и markdown.Поддержка других языков может быть обеспечена расширениями

Я не знаю ни одного существующего расширения, которое реализует свертывание с поддержкой синтаксиса для php.Если вы хотите реализовать это самостоятельно, взгляните на складной провайдер api

...