VS2010 + Сворачивание кода

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

VS2010 + Сворачивание кода

Сообщение FireFenix » 03.09.2010 (Пт) 1:31

Собсно стоит VS2010, не помню - было ли возможно в предидущих версиях...
Но немного раздражает, что при текущем развитием прогресса - студия так и не научилась сворачивать конструкции VB: If, Select Case, For/While внутри функции
Т.е. клацая на "+" - код свернулся бы в 1 строчку... как сделано в Notepad++

Есть ли надстройки/add-in'ы/извращения, которые бы придали такой функционал?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 03.09.2010 (Пт) 6:21

я сворачиваю ctrl+M+H
Но это в студии 2008-й, думаю в 2010-й должно тоже
Пишите жизнь на чистовик.....переписать не удастся.....

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 03.09.2010 (Пт) 15:03

Это-то сворачивается.... но после перезагрузки проекта точки сворачивания слетают
Ну собсно у меня селект с 50 кейсами, на функи на разбивать не хочется... Но если свернуть - то гораздо легче добираться до нужного кейса и отлаживать
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 03.09.2010 (Пт) 20:31

FireFenix писал(а):Это-то сворачивается.... но после перезагрузки проекта точки сворачивания слетаю

Странно, у меня не слетают. Это вообще как изменение в коде принимается. При таком сворачивании постоянно приходится перекомпилировать.
Пишите жизнь на чистовик.....переписать не удастся.....

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 08.09.2010 (Ср) 21:41

Всё же перерыл весь мсдн и добрался до статьи http://msdn.microsoft.com/ru-RU/library/td6a5x4s.aspx
Автоматическая структуризация:
При вводе новых определений редактор кода автоматически создает свертываемые области из блоков нового кода

Удивило :shock: ... почему же студия не считает за блоки If,Try, Select и т.д.?

Оформил пост на русском форуме http://social.msdn.microsoft.com/Forums/ru-RU/ruvsfeedback/thread/7ffc35f4-0631-4093-be2a-a269bdec5a20
Жду ответов...
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: VS2010 + Сворачивание кода

Сообщение Joo » 09.09.2010 (Чт) 5:35

FireFenix писал(а):Оформил пост на русском форуме http://social.msdn.microsoft.com/Forums ... 69bdec5a20

Плохо оформил. Хотя бы грамматику соблюдал, что это за "лепил","собсно" и т.д.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 09.09.2010 (Чт) 19:20

Joo писал(а):Плохо оформил. Хотя бы грамматику соблюдал, что это за "лепил","собсно" и т.д.

Чуток разбавил печаль сообщения =)

Вообще что-то русский мсдн уныл... на форуме - глухо как в лесу
И форум говняный... После правки текст может получить букет произвольных интервалов между строчками и форматирование кода через раз работает
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 04.10.2010 (Пн) 0:15

Сделал аналогичный пост на англ форуме...

На что ответили:
I suppose you'd like to create some custom region of matched braces like if+else, try+catch, etc, and the regions can be outlined as you wish.
For this case, I suggest to create a outlining tagger, for more information, please check:
http://msdn.microsoft.com/en-us/library/ee197665.aspx
This walkthrough indicates how to make this kind of regions.

Правда на это натыкался ещё и раньше... Осталось выяснить как всё это прикручивается к студии...
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 08.10.2010 (Пт) 18:10

Наконец-то домучал расширение до альфа версии HidingRegions v0.2a...
Пока сделал лижбы работало и не ломалось => логика примитивная и оптимизация по скорости не фонтан

Сворачивает или разбивает на блоки:
  • If -> End If
  • ElseIf -> [ElseIf|Else|End If]
  • Else -> End If
  • Select Case -> End Select
  • Case -> [Case|End Select]
  • Try -> End Try
  • Catch -> End Try
  • For -> Next
  • While -> End While
  • Do -> Loop (не берётся выражение из Loop для текста в свёрнутом виде)
Требования:
  • Microsoft Visual Studio 2010 (MS что-то намудрила с интерфейсами EnvDTE.DTE поэтому только для этой версии)
    • Text Editor -> Basic -> Enable Virtual Space = On
    • Text Editor -> Basic -> Tabs -> Insert Spaces = On
  • Microsoft dotNet Framework 4.0
Недочёты:
  • Не полностью поддерживаются переносы строк в выражениях
  • Не оптимизировано (обрабатывается CodeDOM листа при любом изменении буфера)
  • Может вылетать табличка с ссылкой на лог :shock: (вроде как при кривом закрытии VS)
  • Может быть определении нижней границы региона. Помогает переформатирование Shift + Tab или CTRL+K+F
Изображение

P.S. "Расширение vsix запрещено администратором" - немного удивило :shock:
P.S.S. Если нужна поддержка дургих версий VS - меняйте ProgID, если FW - указывается в свойствах проекта и компилируйте

upd: исправил пару багов
Вложения
Dlls.rar
Если будет требовать Dll'ки
(116.43 Кб) Скачиваний: 83
Source.rar
Исходный код
(14.65 Кб) Скачиваний: 76
HidingRegions.rar
Самое расширение
(15.79 Кб) Скачиваний: 91
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 13.03.2011 (Вс) 15:28

Если честно, нифига не понял что ты сделал :)
Но мне нужно то же самое в VS 2010 для C++, потому что реально Ctrl+M+H слетают иногда.
Расскажи поподробней как все обустроить если можно
Пишите жизнь на чистовик.....переписать не удастся.....

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 13.03.2011 (Вс) 18:09

В планах было сделать для всех языков и получше оптимизировать... пока ещё руки не дошли...

В общем вначале для студии нужно поставить SDK для Extension'ов, который вроде идёт со стандартным SDK для VS (точно не помню)

Студия предоставляет несколько интерфейсов, для работы с содержимым, при подключении плагина она создаёт класс компонента и передаёт ему параметры.
У меня был использован интерфейс ITaggerProvider
Код: Выделить всё
<Export(GetType(ITaggerProvider))>
<TagType(GetType(IOutliningRegionTag))>
<ContentType("Text")>
Friend NotInheritable Class HidingRegionsProvider : Implements ITaggerProvider
    '...
End Class


В котором я получаю инфо о настройках VS и реализую функцию интерфейса ITaggerProvider.CreateTagger, которая передаёт мой класс Tagger, как обработчик буфера.
При изменении буфера вызывается событие BufferChanged, после обработки и составления объектной модели если были изменены "блоки данных", то зовём ивент TagsChanged. После чего студия обращается к GetTags и мы отдаём сформированные "блоки данных"

Как-то так :)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 13.03.2011 (Вс) 21:39

все равно нифига не понял.
Это все где вообще происходит? Где это все прописывается?
Пишите жизнь на чистовик.....переписать не удастся.....

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 13.03.2011 (Вс) 21:54

SLIM писал(а):все равно нифига не понял.
Это все где вообще происходит? Где это все прописывается?

:( Это всё происходит в визуал студии (компиляция и отладка), когда продукт отлажен, то на выходе файл *.vsix который добавляется чере Add-in
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 13.03.2011 (Вс) 22:54

Я ж вот и срашиваю где именно?
VB.NET? C? Какой-то отдельный компилятор специально созданный для этого?
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: VS2010 + Сворачивание кода

Сообщение iGrok » 14.03.2011 (Пн) 0:47

Судя по синтаксису - VB.NET
label:
cli
jmp label

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 14.03.2011 (Пн) 1:14

SLIM писал(а):Я ж вот и срашиваю где именно?
VB.NET? C? Какой-то отдельный компилятор специально созданный для этого?

В общем вначале для студии нужно поставить SDK для Extension'ов, который вроде идёт со стандартным SDK для VS (точно не помню)

И судя из исходников, вроде как должен броситься в глза VB.NET синтаксис
Компилятор стандартный VS'овский, просто юзает расширение из SDK для создания и запаковки в файлы расширений (которые являются архивами, которые также можно открыть архиватором)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 14.03.2011 (Пн) 6:27

FireFenix писал(а):И судя из исходников, вроде как должен броситься в глза VB.NET синтаксис
Компилятор стандартный VS'овский, просто юзает расширение из SDK для создания и запаковки в файлы расширений (которые являются архивами, которые также можно открыть архиватором)

Да я не смотрел вложения, поэтому и не знаю.
Ну в общих чертах понятно.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VS2010 + Сворачивание кода

Сообщение Хакер » 14.03.2011 (Пн) 13:08

FireFenix писал(а):Компилятор стандартный VS'овский, просто юзает расширение из SDK для создания и запаковки в файлы расширений (которые являются архивами, которые также можно открыть архиватором)

Вот конечно это блестящий пример «хорошего дизайна» со стороны Microsoft. Огромные массивы данных они предлагают хранить в чущовищно некомпактном формате XML (типа дисковое место же дешевое, чё?), а DLL-шки-плагины для IDE нужно всенепременно запаковывать в архив, да и вообще качать для их создания отдельный SDK.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VS2010 + Сворачивание кода

Сообщение FireFenix » 14.03.2011 (Пн) 22:09

Хакер писал(а):DLL-шки-плагины для IDE нужно всенепременно запаковывать в архив

Ну прально, зачем изобретать велосипед, чтобы упаковать хлам вместе с длл идущий с Расширением?
Обычный архив с некоторыми соглашениями...

Хакер писал(а):да и вообще качать для их создания отдельный SDK.

90% людей нафиг не нужно городить плагины для VS, поэтому для облегчения - всё не особо нужное вырезано.
Если нада - ставь на здоровье!
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 14.03.2011 (Пн) 22:11

Ну вообще могу сказать что MS уж перестарались в настройке гибкости студии. Все стало как-то очень сложо, всего очень много, не все оправдано.
Хакер писал(а):в чущовищно некомпактном формате XML (типа дисковое место же дешевое, чё?)

Не знаю почему ты против этого формата? Чем он чудовищно большой. Обычный текстовый файл. Мне очень понравился в использовании для хранения кучи всякого интересного.
Пишите жизнь на чистовик.....переписать не удастся.....

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: VS2010 + Сворачивание кода

Сообщение Dmitriy2003 » 14.03.2011 (Пн) 22:29

Хакер писал(а):типа дисковое место же дешевое, чё?

чё те дисковое место сдалась-то, при каждом удобном случае его упоминаешь, его вообще много и дешево исключительно для медиа-контента, кто думает иначе тот безумен :lol:

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: VS2010 + Сворачивание кода

Сообщение FaKk2 » 15.03.2011 (Вт) 1:51

xml не кошерен ибо ваистену!

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: VS2010 + Сворачивание кода

Сообщение iGrok » 15.03.2011 (Вт) 2:08

Всему есть своё применение. xml весьма хорош в качестве формата обмена данными, да и ещё в качестве много чего.
Но, например, при виде "БД" в xml на три гига у меня начинает нервно дёргаться глаз. А у вас нет?
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: VS2010 + Сворачивание кода

Сообщение SLIM » 15.03.2011 (Вт) 6:56

БД в XML меня тоже подергивает.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VS2010 + Сворачивание кода

Сообщение Хакер » 15.03.2011 (Вт) 9:59

SLIM писал(а):Не знаю почему ты против этого формата?

Наоборот, я его люблю. Я против того, как к нему относится Microsoft.
Причём я люблю его целиком, вместе с DTD, о котором некоторые (многие) фанаты XML слышали, но не более того. У меня в этом формате, например, хранится проектная документация, функциональные и технические спецификации. И с помощью XSLT преобразуется в нужную по ситуации форму.

SLIM писал(а):Чем он чудовищно большой.

Он чудовищно некомпактный. Для того, чтобы сохранить информацию о состоянии объекта, который может пребывать только в двух состояниях, достаточно одного бита. В один байт можно напихать информацию о 8 таких объектах. Но Boolean-переменная в VB занимает 2 байта — 16 бит. То есть могла бы теоретически хранить информацию о состоянии сразу 16 объектов, но хранит информацию только об одном. Вот наглядный перерасход занимаемого места. Вот эффективность хранения, равная 6 %. Из затраченных битов только 6 % реально что-то кодируют, остальные просто не используются.

Но это перерасход памяти в угоду производительности: с 16-битной Boolean-переменной процессор работает куда быстрее, чем с 16-ю Boolean-переменными, упакованными в 16-битный блок.

А вот ещё пример перерасхода: в XML для сохранения информации о состоянии того же объекта нужно написать что-то вроде enabled="enabled". Здесь уже трёхсоткратный перерасход, но выигрыша в производительности совершенно никакой.

Вот о какой некомпактности я говорю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 38

    TopList