Ответ 1
Из коробки? Вы не можете.
Мне бы очень хотелось, чтобы VS2008 автоматически отступал от содержимого региона. Вероятно, выбор будет лучше.
Что происходит сейчас:
#region [ Fields ]
public int Count;
public int Total;
#endregion
Я бы хотел:
#region [ Fields ]
public int Count;
public int Total;
#endregion
Как я могу заставить VS сделать это?
EDIT: Для чего это стоит, VS делает сделать это в VB.NET.
Из коробки? Вы не можете.
Этот макрос должен работать, по большей части:
Public Sub IndentRegions()
'Assume that the document has been smart formatted
Dim TS As TextSelection = DTE.ActiveDocument.Selection
TS.SelectAll()
Dim lines As String() = TS.Text.Split(vbNewLine)
Dim level As Integer = 0
TS.StartOfDocument()
While Not TS.ActivePoint.AtEndOfDocument
If lines(TS.ActivePoint.Line - 1).Trim().StartsWith("#endregion") Then
level = level - 1
End If
For i = 1 To level
TS.Indent()
Next
If lines(TS.ActivePoint.Line - 1).Trim().StartsWith("#region") Then
level = level + 1
End If
TS.LineDown()
TS.StartOfLine()
End While
End Sub
Измените цвет фона на другой цвет, отличный от фона главной страницы (я использовал серебро поверх белого), и это придаст этому отступу ощущение, которое вы ищете.
Options
> Environment
> Fonts and Colors
> Элементы отображения: Preprocessor Keyword
, а затем измените выпадающее меню item background
.
Я бы сказал, что единственный способ имитировать это - использовать фигурные скобки "{" и "}" внутри регионов, ограничивая ваш кодовый блок. К сожалению, это работает только внутри Кодов функций и методов, поэтому это не сработает для вашего примера. В некоторых случаях разграничение блоков кода может быть несовместимым и требует корректировок в соответствии с вашей логикой кода.
function Test(){
#region Example
{
your code
}
#end region
}
Инструменты Опции Текстовый редактор С# Вкладки индент Smart Ident