Весьмой C#


Wholemy.CSharp: 2019.0330.0944.503
Wholemy.CSharp2019: 2019.0330.1001.0008

Установочный архив расширения для Visual Studio 2017 и 2019
доступен непосредственно из меню студии Расширения и обновления)

Константные шрифты
Обычные шрифты
  Регионы сворачиваются и разворачиваются тремя способами: Первый способ работает при двойном клике на виртуальную область региона, на его вторую часть в начале или в конце региона, при этом первый клик всегда устанавливает курсор в тексте, а второй клик обрабатывается элементом. Второй и третий способ позволяет свернуть и развернуть все регионы, когда текст не выделен или напротив свернуть и развернуть только все выделенные регионы, это можно сделать с помощью двух кнопок нижнего тулбара.

  Тултипы теперь работают исключительно внутри редактора, подсвечивая все реализованные определения, которые реализованы еще не все) Так как тултипы часто не умещается в окне, их можно прокручивать колесом мыши, с зажатой клавишей шифт для горизонтальной прокрутки и с контрол для вертикальной прокрутки) Тоже самое теперь можно делать и с виртуальными именованиями регионов, их тоже можно прокручивать) Первое событие колеса прокрутки мыши лишь фокусит элемент) Контрол теперь в одиночку не работает, так как он используется для изменения масштаба текста)

  В дополнении реализован собственный региональный обработчик, поэтому рекомендуется отключить региональный обработчик в студии) Отличительная особенность в том, что в обработчике не обрабатываются коментарии, а вернее регионы работают в одиночных коментариях где используется два или три слеша а так же одна или две звездочки. В случае если регионы при открытии документа свертываются не правильно, следует развернуть все сегменты и закрыть документ, а затем открыть снова.


  Расширение полностью меняет облик текстового редактора языка C#, все ключевые слова перекрыты лигатурами множества встроенных шрифтов, то есть комбинированными текстовыми символами, которые не изменяют содержание текста, но делают его более плотным и пропорционально равноширенным. Для улучшения визуализации встроенных шрифтов в расширении используется механизм проверки и исправления настроек каждого элемента в окне для нормального отображения шрифтов.

  Помимо ключевых слов реализованы дополнительные слова, это те же ключевые слова в большинстве своем, но между решетками #addword#, они используются в конструкциях XML комментариев и именовании регионов для улучшения восприятия.

  Если вас пугает перспектива ничего не понять, то для этого существуют тултипы, при наведении курсора мыши на непонятный символ вы увидете подсказку, но подсказка не простая, она активная, первое слово в тултипе всегда удаляет это слово, остальные слова представляют альтернативные комбинации, которые заменяют или дополняют узел в котором они расположены)

  Так же в расширении реализован комплексный подход к регионам, именования которых виртуализуются в директивах #region и #endregion в обе стороны. Что позволяет видеть в начальной директиве то что написано в завершающей директиве и наоборот. Отражение и виртуализация наименований происходит в реальном времени.

  Цифры в исходном коде обрабатываются специальным числовым шрифтом, таким образом HEX числа представляются всегда в верхнем регистре, не смотря на то что в реальности могут быть записаны в нижнем регистре букв. Числовые разделители, подчеркивания выделяются другим цветом, они так же сгруппированы в квадратики с числом или буквой(0-9-A-Z), которое соотносится с количеством знаков подчеркиваний подряд и может составлять от 1 до 36 знаков подчеркиваний в одном определении. Тот же метод лигатурной подмены подчеркиваний используется во всем остальном тексте программы, разве что цветом не выделяется, но отдельно настраивается для каждого типа именования. Чередование шрифтов необходимо для корректного отображения символов подчеркиваний, именно поэтому подчеркивания больше не подменяются основными шрифтами)

  Для улучшения читабельности на различных фонах, строки исходного кода имеют фоновую заливку, которая частично перекрывает все выделения логического текста программы, фоновый цвет настраивается цветовой настройкой C# Background.

  Символы табуляции в начале строки до начала исходного текста, считаются и выводятся в цифрах, так же считаются и пробелы, для того чтобы их можно было отличить от табуляции, цвет этого текста регулируется настройкой C# Counter Tabs и C# Counter Spaces, так же можно регулировать цвет счетчика линий C# Counter Lines. В последней версии дополнения имеется настройка по умолчанию и настройка выбранной линии, которая реализована при наведении курсора мыши на строку текста. Именуются эти настройки соответсвующим образом Default и Selected)

  Кеш накапливается в двоичном дереве, обновление встроенного кеша подсветки происходит в пределах одной секунды, при непрерывном поступлении запросов интервал обновления увеличивается до тех пор пока не будут обработаны все запросы. Обновление кеша необходимо для отражения изменений совершенных в других документах, если не делать обновлений, изменение одного дукумента вызовет расхождение в подсветке другого документа) Если пытаться обновлять кеш без интервала, это вызывает сильные лаги, которые приводят к подвисанию студии) Внутренний кеш все время изменяется, например при свертывании или развертывании регионов, потому кешируется и то и другое в двоичном дереве, но в пределах расстягиваемой секунды непрерывных запросов) Казалось бы мелочь, но когда работаешь с документами порядка 20-50 тысяч строк, эта мелочь отрабатывает свою роль по полной программе)

  Если вы хотите сделать всю визуальную студию в едином стиле, дополнительно к расширению вам понадобится скачать и установить шрифты, константные шрифты нужны для отображения дополнительных слов в тексте, который отображается иными средствами вывода, которые не попадают в поле видимости расширения, расширение затрагивает только текстовый редактор C#, свернутые регионы являются отдельным от расширения способом вывода, то есть текст свернутых регионов не форматируется расширением, а значит единственный возможный способ отобразить слова с решетками в этой области путем настройки шрифта CSharpConst для текстового редактора.
Все реализованные ключевые слова
Все реализованные дополнительные слова
Другие примеры