Решил тут восстановить историческую несправедливость в Visual Studio. Из всего леса деревьев которые там есть, "Закладки" (Bookmarks) представляют из себя пень - всего два уровня вложенности. Осталось так и в 2010 студии. Объяснить это могу только тем, что мало кто пользуется закладками, а для работы в системах контроля версий они почти не годятся.
Пора с этим покончить.
Итак "Дерево закладок" умеет:
- создавать закладки;
- создавать папки закладок;
- создавать папки в папках закладок;
- создавать папки в папках в папках закладок;
- ...
- поддерживает перетаскивание закладок в папки, из папок и между собой;
- функция "закладка в закладке"; :)
- переименование закладок и папок по клавише F2;
- поддерживает привязку закладок к коду с помощью шаблонов на регулярных выражениях;
Про первые три кнопки все должно быть понятно:
- Ставим курсор на строку кода, на которую будет перебрасывать закладка
- Нажимаем кнопку создания закладки
- Двойным кликом в дереве по ней переходим на соответствующую строку
- Удаляем и перемещаем в папки по желанию
- Перемещать можно и закладки в закладки, поэтому перемещение в папку или закладку отличается от перемещения в определенную позицию, перетаскиванием в верхнюю или нижнюю часть целевой закладки/папки. Визуализации процесса пока нет.
Последняя же кнопка нужна в случае, когда были использованы привязки, а файл был изменен вне студии, т.е. закладки уже не указывают на те строки кода, на которых были созданы.
Шаблоны привязок можно добавлять, для этого в настройках есть раздел "Bookmarks tree", где можно пополнить соответствующую коллекцию.
У каждого шаблона три поля:
- Pattern - с помощью регулярных выражений описываем шаблон;
- PatternKey - уникальный строковый ключ, любой произвольный;
- GroupNumbers - номера групп через запятую, из которых формируется поисковая строка.
Суть пересчета на примере:
void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
объявление функции соответствует шаблону "\w+\s(\w+)\([a-zA-Z0-9,\s]+\)", в случае совпадения группа номер 1 - "(\w+)" - название функции, т.е. backgroundWorker_DoWork. Когда выполняется пересчет, ищется строка соответствующая данному регулярному выражению, если такая строка найдена, то значение первой группы сравнивается с сохраненной при создании закладки поисковой строкой.
Пока встроено два типа шаблонов - для объявлений функций и для вызова оператора new.
Аналогично для оператора new, в качестве первой группы и поисковой строки выступает название экземпляра создаваемого объекта.
Таким образом, если позиция таких закладок была по какой-то причине сбита, после нажатия кнопки "Rescan", закладки с привязками будут восстановлены.
Дерево закладок сохраняется в файле с названием "bookmarkstree.tree" и лежит он рядом с файлом *.sln
Страница проекта:
http://visualstudiogallery.msdn.microsoft.com/e2e6fb19-5581-41fd-9a95-2872c288d590
https://sourceforge.net/projects/bookmarkstree/
Так или иначе были подсмотрены:
http://www.codeproject.com/Articles/61915/Numbered-Bookmarks-Visual-Studio-Extension-VSX-201
http://www.codeproject.com/Articles/31592/Editable-TextBlock-in-WPF-for-In-place-Editing
Таким образом, если позиция таких закладок была по какой-то причине сбита, после нажатия кнопки "Rescan", закладки с привязками будут восстановлены.
Дерево закладок сохраняется в файле с названием "bookmarkstree.tree" и лежит он рядом с файлом *.sln
Страница проекта:
http://visualstudiogallery.msdn.microsoft.com/e2e6fb19-5581-41fd-9a95-2872c288d590
https://sourceforge.net/projects/bookmarkstree/
Так или иначе были подсмотрены:
http://www.codeproject.com/Articles/61915/Numbered-Bookmarks-Visual-Studio-Extension-VSX-201
http://www.codeproject.com/Articles/31592/Editable-TextBlock-in-WPF-for-In-place-Editing
За что им большое спасибо.
Очень нужная штука. Только не работает... Тоесть может я чего не понял - скачал, установил, а ничего не появилось - ни менюшки, ни кнопки... Как пользвать её?
ОтветитьУдалитьПриятно слышать, что это нужная штука :)
ОтветитьУдалитьЕсли речь про 2010 студию, все корректно установилось, студия была перезапущена и в "Extension manager..." появилась новая запись, то модуль расширения можно найти в меню View->Other Windows->Bookmarks tree
замечательно, спасибо. следующий вопрос - изменить имя закладки / папки - это как?
ОтветитьУдалитьПереименование, как у штатного, F2.
Удалить