Когда я нажимаю стандартные Ctrl + E, C (другие варианты) в VS2008 во время редактирования файла CSS, он говорит, что команда недоступна. Как настроить ярлык для применения простого старого комментария / * * / к выделенному тексту в VS? Спасибо






В Visual Studio нажмите Alt-F11, чтобы открыть Macro IDE и добавить новый модуль, щелкнув правой кнопкой мыши MyMacros и выбрав Добавить | Добавить модуль ...
Вставьте следующее в исходный редактор:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module CommentCSS
Sub CommentCSS()
Dim selection As TextSelection
selection = DTE.ActiveDocument.Selection
Dim selectedText As String
selectedText = selection.Text
If selectedText.Length > 0 Then
selection.Text = "/*" + selectedText + "*/"
End If
End Sub
End Module
Вы можете создать сочетание клавиш, перейдя в Инструменты | Параметры ... и выбрав Клавиатура в разделе Среда на панели навигации слева. Выберите свой макрос и назначьте любой понравившийся ярлык.
Вы также можете добавить свой макрос в меню или на панель инструментов, перейдя в Инструменты | Настроить ... и выбрав раздел Макросы в навигации слева. Как только вы найдете свой макрос в списке, вы можете перетащить его в любое меню или панель инструментов, где его текст или значок можно настроить так, как вы хотите.
Это здорово - это еще одна вещь - при комментировании более чем одной строки CSS кажется, что добавляется дополнительная табуляция в начало каждой строки после первой? В результате ваш код размещен в виде вкладок, как перевернутая лестница. Зачем ему это нужно?
@wows - я не могу воспроизвести то, что вы описываете; Комментирование, похоже, работает одинаково, независимо от того, выбрана ли у меня одна или несколько строк CSS. Форматирование вообще не меняется.
@ Джефф Хиллман - я понял - это потому, что VS был установлен на «Блокировать» отступ вместо «Умного» отступа в настройках редактора CSS. Переход на смарт решает проблему. Ваше здоровье!
@wows - Рад это слышать. Можно было бы изменить это для режима «Блок», вставив «/ *» и «* /» непосредственно в текст (используя selection.AnchorPoint.AbsoluteCharOffset и selection.ActivePoint.AbsoluteCharOffset) вместо замены всего выделения. Что-нибудь, чтобы попробовать позже.
более продвинутое решение с: 1. поддержкой отмены, 2. обработкой всех типов файлов с помощью одного сочетания клавиш, 3. обработкой раскомментирования. показано здесь: stackoverflow.com/questions/3110429/…
вот еще более простое решение:
Sub CommentCSS()
DTE.ActiveDocument.Selection.StartOfLine(VsStartOfLineOptions.VsStartOfLineOptionsFirstText)
DTE.ActiveDocument.Selection.Text = "/*"
DTE.ActiveDocument.Selection.EndOfLine()
DTE.ActiveDocument.Selection.Text = "*/"
End Sub
вы можете записать это самостоятельно, используя ctrl + shift + R
Спасибо, но это действительно работает только для одной строки за раз. Часто комментируют целый класс CSS или несколько классов / селекторов одновременно.
Вау, я думал, что Ctrl + K, Ctrl + C сделает это. Кто-нибудь знает, почему это не работает в CSS? Работает в html, C#, SQL, Javascript ...