Открываете C# файл, а там десяток красных подчёркиваний. Нажимаете
Ctrl+., выбираете нужный namespace, переходите к следующей ошибке, снова Ctrl+.. И так по кругу. Visual Studio умеет добавлять using только по одному. В Rider есть Import Missing References, но это другая IDE.OhUsings решает эту проблему внутри Visual Studio. Расширение сканирует файл, находит все неразрешённые типы через Roslyn и добавляет нужные
using директивы разом. Без ручного перебора.Как это работает
Под капотом OhUsings использует семантическую модель Roslyn, а не regex. Расширение читает диагностики компилятора (
CS0246, CS0103, CS0234 и ещё около десятка), извлекает имена типов и находит подходящие namespace через SymbolFinder. Если тип однозначный, using добавляется автоматически. Если тип встречается в нескольких namespace (например, Timer живёт и в System.Timers, и в System.Threading), расширение покажет диалог выбора.Добавленные директивы сортируются по алфавиту,
System.* ставятся первыми. Всё форматируется через Roslyn.Три области применения
Можно запустить на текущем файле, на активном проекте или на всём solution целиком.
Установка
Самый простой способ: в Visual Studio 2022 откройте Extensions → Manage Extensions, найдите OhUsings и нажмите Download. После перезапуска расширение готово к работе.
Или соберите из исходников:
git clone https://github.com/MabroukMahdhi/OhUsings.git
Откройте
OhUsings.sln в Visual Studio 2022, соберите проект и установите полученный OhUsings.vsix.Как использовать
Три варианта на выбор. Через меню: Tools → OhUsings: Import All Missing Usings. Через контекстное меню: правый клик в редакторе → OhUsings: Import All Missing Usings. Или через light bulb: ставите курсор на неразрешённый тип, нажимаете
Ctrl+. и выбираете действие из предложенных OhUsings.Результат отображается в статусной строке и Output Window.
Настройки
Расширение поддерживает несколько опций.
SortUsings (по умолчанию true) отвечает за сортировку директив. PlaceSystemFirst (по умолчанию true) ставит System.* выше остальных. MaxDiagnosticsPerDocument (по умолчанию 200) ограничивает число обрабатываемых диагностик на файл для защиты производительности.Ограничения
OhUsings работает только с типами из уже подключённых сборок. Добавлять NuGet пакеты или ссылки на проекты расширение пока не умеет, но это есть в планах. Если тип неоднозначный, его придётся выбрать вручную через диалог.
Итого
OhUsings экономит время на рутине. Вместо того чтобы обходить каждую ошибку по отдельности, вы запускаете одну команду и получаете все нужные
using сразу. Расширение бесплатное, с открытым исходным кодом под MIT лицензией, без телеметрии и сетевых запросов.➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#sharp_view
