Как добавить «Включить/выключить линзу кода» в качестве кнопки быстрой команды в Visual Studio?

Я хотел бы, чтобы в строке меню отображалась кнопка быстрой команды для включения/выключения Code Lens. Я так понимаю, для этого есть сочетание клавиш:

Команда EditorContextMenus.CodeLens.CodeLensOptions для сочетания клавиш, но я не могу сделать ее кнопкой быстрого доступа.

Это будет очень здорово, я вижу быструю кнопку в моем меню VS, чтобы быстро переключать его. (вместо того, чтобы запомнить его как сочетание клавиш)

Как я могу этого добиться?


person rc76    schedule 10.02.2021    source источник
comment
См. stackoverflow.com/questions/31746690/   -  person Sergey Vlasov    schedule 11.02.2021


Ответы (1)


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

Вот что я сделал:

  • Сделал копию %LOCALAPPDATA%\Microsoft\VisualStudio\<version>\Settings\CurrentSettings.vssettings
  • В мою строку меню добавлена ​​случайная команда
  • Удалены параметры CodeLens... из соответствующего меню с помощью редактора команд:
    введите здесь описание изображения
  • Закрыты все экземпляры Visual Studio для сброса изменений на диск.
  • Запустите модуль форматирования XML для обоих файлов, а затем сравните их
    (примечание: некоторые инструменты сравнения, такие как Beyond Compare, имеют встроенный модуль форматирования XML).
  • The diff revealed the command's GUID and CmdPri:
    <remove Cmd="{7660636A-8C08-4430-A56F-146E42A8B2C5}:00000001" CmdPri="01000000" Group="{7660636A-8C08-4430-A56F-146E42A8B2C5}:00002000" GroupPri="01000000" Menu="{7660636A-8C08-4430-A56F-146E42A8B2C5}:00003000" IsPartialRemoval="false"/>
    
  • Modified my new command's Cmd and CmdPri to be that of the removed CodeLens command:
    <add Cmd="{7660636A-8C08-4430-A56F-146E42A8B2C5}:00000001" CmdPri="01000000" Group="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000174" GroupPri="09000000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000001"/>
    

И вуаля — команда теперь находится на соответствующей панели инструментов, и вы можете перемещать/изменять ее по своему усмотрению:
введите здесь описание изображения
Теперь вы также можете сбросить исходное меню CodeLens, из которого вы его удалили.

person YellowAfterlife    schedule 10.02.2021
comment
omg, это такой хардкорный взлом. Удивительно, что ты вообще узнал об этом подходе! - person rc76; 12.02.2021
comment
это такой позор, что Microsoft даже не попыталась исправить это простое отсутствие функции... - person rc76; 12.02.2021