Страницы

Поиск по вопросам

среда, 29 января 2020 г.

VS 2013, отключение автоматического разворачивания методов

#visual_studio_2013


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


Ответы

Ответ 1



Вся информация о сокрытии фрагментов кода, закладках и т.д. (так называемый outlining) хранится в файле *.suo, все пути в котором абсолютны. Естественно, при переносе проекта все абсолютные пути перестают быть актуальными и элементы outlining пропадают. Из файла *.suo можно понять, что он напрямую хранит структуры всех файлов с прямым указанием номеров строк к которым применяется тот или иной элемент outlining. Очевидно, при определенных условиях, при вставке фрагмента кода, номера строк в *.suo не пересчитываются, что и приводит к "падению" всего форматирования. Что это за "определенные условия", задуманы ли они разработчиками или являются банальным багом - вопрос отдельного исследования. P.S. Я прямо сейчас пробовал вставлять различные фрагменты кода разного размера и пришел к выводу, что outlining не пересчитывается, если вставляемый фрагмент содержит одну или более незакрытую скобку. Во всех остальных случаях VS2013(Английская) отработала верно и сохранила состояние outlining после вставленного фрагмента. P.S.S. Если проблема наблюдается и вы уверены, что со скобками все ОК, попробуйте перед вставкой крупного фрагмента кода делать файл .suo "только для чтения".

Ответ 2



Перенес ответ из комментария Никак. Это глюк. Глюки не настраиваются. Возможно, в VS 2015 починят. Это если вы пишете на дотнете, для двух языков которого вышел новый компилятор. В противном случае вряд ли. Но всё равно надейтесь на лучшее. А вдруг?

Ответ 3



Насколько я знаю, всё последующее разворачивается только если то, что вставлено не даёт корректную структуру. Например, если не скопирована закрывающая метод фигурная скобка. Хотя допускаю, что в вопросе речь идёт о какой-то другой ситуации.

Ответ 4



Отвечу немножко в сторону. Несколько странной выглядит эта зависимость от сворачивания методов. Могу допустить, что вашу проблему следует решить, изменив способ ориентирования в больших проектах. Например, для меня очень удачным оказался ReSharper с его функцией "Go to everything..." (Ctrl+N). Это во многих кейсах (но не во всех) избавляет от необходимости шарить по проекту и терпеть неудобства от развёрнутых методов.

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

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