Thank you mrmixer for pointing me in the right direction.
I only got only one problem remaining, which is the coloring is also applied in the comments.
It should only change the color when the character has the default text color.
I already tried `marker_visual_set_priority` to `VisualPriority_Lowes`, but this did not work.
Below is the code I added to `default_render_caller` in `4coder_default_hooks.cpp`.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 | // NOTE(hoekkii): punctuation
{
// Load punctuation color
Theme_Color color { 0 };
color.tag = Stag_Punctuation;
get_theme_colors(app, &color, 1); // TODO: This returns black...?
color.color = 0xFFEEEE22; // Test/temporary fix
// Text range to check
auto temp = begin_temp_memory(scratch);
auto text_size = on_screen_range.one_past_last - on_screen_range.first;
auto text = push_array(scratch, char, text_size);
buffer_read_range(app, &buffer, on_screen_range.first, on_screen_range.one_past_last, text);
for (int32_t i = 0; i < text_size; ++i)
{
if (!is_punctuation(text[i]))
continue;
auto o = alloc_buffer_markers_on_buffer(
app, buffer.buffer_id, 1, &render_scope);
Marker range_markers {on_screen_range.first + i};
managed_object_store_data(app, o, 0, 1, &range_markers);
auto visual = create_marker_visual(app, o);
marker_visual_set_effect(
app, visual,
VisualType_CharacterBlocks,
SymbolicColor_Transparent,
color.color, 0);
marker_visual_set_priority(app, visual, VisualPriority_Lowest);
}
end_temp_memory(temp);
}
|