StyledTextCtrl Маска для укладки, что это?

Я нахожусь в процессе создания пользовательского лексера. Затем я обнаружил, что StyledTextCtrl.StartStyling() - это метод, используемый для начала применения стиля к тексту, но я понятия не имею, что такое маска. Я набрал StartStyling.__doc__ и получил это

StyledTextCtrl.StartStyling(self, int pos, int mask)
Set the current styling position to pos and the styling mask to mask.
The styling mask can be used to protect some bits in each styling byte from modification.

Как здесь применяется маска стиля и как выбрать номер маски?

1 ответ

Решение

Эта страница объясняет большую часть этого:

http://www.yellowbrain.com/stc/styling.html

Целочисленный параметр pos задает позицию, с которой вы хотите начать операции стилизации. Целочисленная маска параметров указывает, какие биты байтов стиля нужно изменить.

Из документации Scintilla: Маска позволяет выполнять стилизацию за несколько проходов, например, базовое моделирование выполняется на начальном проходе, чтобы обеспечить быстрый и корректный просмотр текста кода, а затем на втором более медленном проходе, обнаруживая синтаксис ошибки и использование индикаторов, чтобы показать, где они находятся. Например, при стандартных настройках 5 битов стиля и 3 битов индикатора вы бы использовали значение маски 31 (0x1f), если вы устанавливали стили текста и не хотели менять индикаторы.

Вы, вероятно, хотите, чтобы ваша маска была 0x1f (младшие 5 бит), это условно. Младшие 5 бит используются для стилей (до 32 различных стилей), а старшие 3 бита используются для индикаторов.

Другие вопросы по тегам