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