У меня проблема с пониманием того, как маркеры Scintilla привязаны к полю. Допустим, я хочу 3 поля. 1-й для номеров линий (здесь нет проблем), 2-й только для маркеров стрелок и 3-й только для кругов. Из документации я знаю, что мне нужно указать маски полей, чтобы привязать маркер к полю, но я не понимаю, как указать маску. Я пробовал немного, но так и не получил желаемого результата. (Либо стрелки отображались на обоих полях (2-м и 3-м), либо символ не выделялся, а вместо этого выделялась строка). Надеюсь, кто-нибудь может просветить меня, как установить маски полей.
/* 2nd marker margin -> only arrows */
Call(SCI_SETMARGINTYPEN, 1, SC_MARGIN_SYMBOL);
Call(SCI_SETMARGINWIDTHN, 1, 20);
Call(SCI_SETMARGINSENSITIVEN, 1, 1);
Call(SCI_SETMARGINMASKN, 1, SC_MARK_ARROW); // <=== ???
DefineMarker(1, SC_MARK_ARROW, 0xffffff, 0x0000ff);
/* 3rd marker margin -> only circles */
Call(SCI_SETMARGINTYPEN, 2, SC_MARGIN_SYMBOL);
Call(SCI_SETMARGINWIDTHN, 2, 50);
Call(SCI_SETMARGINSENSITIVEN, 2, 1);
DefineMarker(2, SC_MARK_CIRCLE, 0xffffff, 0x00ff00);
Call(SCI_SETMARGINMASKN, 2, SC_MARK_CIRCLE); // <=== ???
Call(SCI_MARKERADD, 1, 1);
Call(SCI_MARKERADD, 1, 2);
Таким образом, я получаю маркер со стрелкой на поле 1, но только выделенную строку и без маркера круга для поля 2. Я был бы рад, если кто-нибудь может объяснить, как должны быть установлены маски.