Skip to content

Commit 3bc417c

Browse files
ZimWiki: Syntax highlighting for code, global setting (PR #1434 by @fredericjacob)
1 parent 2005fa4 commit 3bc417c

File tree

5 files changed

+34
-23
lines changed

5 files changed

+34
-23
lines changed

app/src/main/java/net/gsantner/markor/format/markdown/MarkdownHighlighter.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class MarkdownHighlighter extends Highlighter {
2626
private final boolean _highlightLineEnding;
2727
private final boolean _highlightCodeChangeFont;
2828
private final boolean _highlightBiggerHeadings;
29-
private final boolean _highlightDisableCodeBlock;
29+
private final boolean _highlightCodeBlock;
3030

3131
private static final int MD_COLOR_HEADING = 0xffef6D00;
3232
private static final int MD_COLOR_LINK = 0xff1ea3fe;
@@ -38,9 +38,9 @@ public MarkdownHighlighter(HighlightingEditor hlEditor, Document document) {
3838
super(hlEditor, document);
3939
_highlightLinks = false;
4040
_highlightLineEnding = _appSettings.isMarkdownHighlightLineEnding();
41-
_highlightCodeChangeFont = _appSettings.isMarkdownHighlightCodeFontMonospaceAllowed();
41+
_highlightCodeChangeFont = _appSettings.isHighlightCodeMonospaceFont();
4242
_highlightBiggerHeadings = _appSettings.isMarkdownBiggerHeadings();
43-
_highlightDisableCodeBlock = _appSettings.isMarkdownDisableCodeBlockHighlight();
43+
_highlightCodeBlock = _appSettings.isHighlightCodeBlock();
4444
setTextModifier(new ListHandler(_appSettings.isMarkdownAutoUpdateList(), MarkdownAutoFormat.getPrefixPatterns()));
4545
}
4646

@@ -85,7 +85,7 @@ protected Spannable run(final Spannable spannable) {
8585
createMonospaceSpanForMatches(spannable, MarkdownHighlighterPattern.CODE.pattern);
8686
}
8787
_profiler.restart("Code - bgcolor");
88-
if (!_highlightDisableCodeBlock) {
88+
if (_highlightCodeBlock) {
8989
createColorBackgroundSpan(spannable, MarkdownHighlighterPattern.CODE.pattern, MD_COLOR_CODEBLOCK);
9090
}
9191

app/src/main/java/net/gsantner/markor/format/zimwiki/ZimWikiHighlighter.java

+13-2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public static class Colors {
7474
private static final int CHECKLIST_CHECKED_COLOR = 0xff54a309;
7575
private static final int CHECKLIST_CROSSED_COLOR = 0xffa90000;
7676
private static final int ZIMHEADER_COLOR = 0xff808080;
77+
private static final int CODEBLOCK_COLOR = 0xff8c8c8c;
7778
}
7879

7980

@@ -120,10 +121,20 @@ protected Spannable run(final Spannable spannable) {
120121
createSpanWithStrikeThroughForMatches(spannable, Patterns.STRIKETHROUGH.pattern);
121122

122123
_profiler.restart("Preformatted (monospaced) inline");
123-
createMonospaceSpanForMatches(spannable, Patterns.PREFORMATTED_INLINE.pattern);
124+
if (_appSettings.isHighlightCodeMonospaceFont()) {
125+
createMonospaceSpanForMatches(spannable, Patterns.PREFORMATTED_INLINE.pattern);
126+
}
127+
if (_appSettings.isHighlightCodeBlock()) {
128+
createColorBackgroundSpan(spannable, Patterns.PREFORMATTED_INLINE.pattern, Colors.CODEBLOCK_COLOR);
129+
}
124130

125131
_profiler.restart("Preformatted (monospaced) multiline");
126-
createMonospaceSpanForMatches(spannable, Patterns.PREFORMATTED_MULTILINE.pattern); // TODO: also indent a bit
132+
if (_appSettings.isHighlightCodeMonospaceFont()) {
133+
createMonospaceSpanForMatches(spannable, Patterns.PREFORMATTED_MULTILINE.pattern);
134+
}
135+
if (_appSettings.isHighlightCodeBlock()) {
136+
createColorBackgroundSpan(spannable, Patterns.PREFORMATTED_MULTILINE.pattern, Colors.CODEBLOCK_COLOR);
137+
}
127138

128139
_profiler.restart("Unordered list");
129140
createColorSpanForMatches(spannable, Patterns.LIST_UNORDERED.pattern, Colors.UNORDERED_LIST_BULLET_COLOR);

app/src/main/java/net/gsantner/markor/util/AppSettings.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,12 @@ public boolean isMarkdownHighlightLineEnding() {
167167
return getBool(R.string.pref_key__markdown__highlight_lineending_two_or_more_space, false);
168168
}
169169

170-
public boolean isMarkdownHighlightCodeFontMonospaceAllowed() {
171-
return getBool(R.string.pref_key__markdown__monospace_some_parts, false);
170+
public boolean isHighlightCodeMonospaceFont() {
171+
return getBool(R.string.pref_key__highlight_code_monospace_font, false);
172172
}
173173

174-
public boolean isMarkdownDisableCodeBlockHighlight() {
175-
return getBool(R.string.pref_key__markdown__disable_code_block_highlight, false);
174+
public boolean isHighlightCodeBlock() {
175+
return !getBool(R.string.pref_key__hightlight_code_block_disabled, false);
176176
}
177177

178178
public boolean isMarkdownAutoUpdateList() {

app/src/main/res/values/string-not_translatable.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,6 @@ work. If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
122122
<string name="pref_key__markdown__hl_delay_v2" translatable="false">pref_key__markdown__hl_delay_v2</string>
123123
<string name="pref_key__quicknote_filepath" translatable="false">pref_key__quicknote_filepath</string>
124124
<string name="pref_key__markdown__highlight_lineending_two_or_more_space" translatable="false">pref_key__markdown__highlight_lineending_two_or_more_space</string>
125-
<string name="pref_key__markdown__monospace_some_parts" translatable="false">pref_key__markdown__monospace_some_parts</string>
126-
<string name="pref_key__markdown__disable_code_block_highlight" translatable="false">pref_key__markdown__disable_code_block_highlight</string>
127125
<string name="pref_key__markdown__auto_renumber_ordered_list" translatable="false">pref_key__markdown__auto_renumber_ordered_list</string>
128126
<string name="pref_key__markdown__reorder_actions" translatable="false">pref_key__markdown__reorder_actions</string>
129127
<string name="pref_key__todotxt__reorder_actions" translatable="false">pref_key__todotxt__reorder_actions</string>
@@ -182,6 +180,8 @@ work. If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
182180
<string name="pref_key__more_info__copy_build_information" translatable="false">pref_key__more_info__copy_build_information</string>
183181
<string name="pref_key__editor_textaction_bar_item_padding" translatable="false">pref_key__editor_textaction_bar_item_padding</string>
184182
<string name="pref_key__editor_disable_spelling_red_underline" translatable="false">pref_key__editor_disable_spelling_red_underline</string>
183+
<string name="pref_key__highlight_code_monospace_font" translatable="false">pref_key__highlight_code_monospace_font</string>
184+
<string name="pref_key__hightlight_code_block_disabled" translatable="false">pref_key__hightlight_code_block_disabled</string>
185185
<string name="pref_key__editor_markdown_bigger_headings_2" translatable="false">pref_key__editor_markdown_bigger_headings_2</string>
186186
<string name="pref_key__editor_unordered_list_character" translatable="false">pref_key__editor_unordered_list_character</string>
187187
<string name="pref_key__recent_documents" translatable="false">pref_key__recent_documents</string>

app/src/main/res/xml/preferences_master.xml

+11-11
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,17 @@
301301
android:key="@string/pref_key__editor_disable_spelling_red_underline"
302302
android:summary="@string/spellcheck_keyboard_suggestion_stay_red_underline_vanishes"
303303
android:title="@string/disable_spelling_underline" />
304+
<CheckBoxPreference
305+
android:defaultValue="false"
306+
android:icon="@drawable/ic_code_black_24dp"
307+
android:key="@string/pref_key__highlight_code_monospace_font"
308+
android:summary="@string/use_different_fonttype_slow_down"
309+
android:title="@string/use_monospace_for_code" />
310+
<CheckBoxPreference
311+
android:defaultValue="false"
312+
android:icon="@drawable/ic_code_black_24dp"
313+
android:key="@string/pref_key__hightlight_code_block_disabled"
314+
android:title="@string/disable_code_block_highlight" />
304315
</PreferenceCategory>
305316

306317
<PreferenceCategory android:title="@string/miscellaneous">
@@ -428,22 +439,11 @@
428439
android:key="@string/pref_key__editor_markdown_bigger_headings_2"
429440
android:summary="@string/increase_text_size_of_headings_according_to_level"
430441
android:title="@string/bigger_headings" />
431-
<CheckBoxPreference
432-
android:defaultValue="false"
433-
android:icon="@drawable/ic_code_black_24dp"
434-
android:key="@string/pref_key__markdown__monospace_some_parts"
435-
android:summary="@string/use_different_fonttype_slow_down"
436-
android:title="@string/use_monospace_for_code" />
437442
<CheckBoxPreference
438443
android:defaultValue="false"
439444
android:icon="@drawable/ic_baseline_keyboard_return_24"
440445
android:key="@string/pref_key__markdown_newline_newparagraph"
441446
android:title="@string/newline_is_new_paragraph" />
442-
<CheckBoxPreference
443-
android:defaultValue="false"
444-
android:icon="@drawable/ic_code_black_24dp"
445-
android:key="@string/pref_key__markdown__disable_code_block_highlight"
446-
android:title="@string/disable_code_block_highlight" />
447447
<!-- CheckBoxPreference
448448
android:defaultValue="false"
449449
android:icon="@drawable/ic_format_list_numbered_black_24dp"

0 commit comments

Comments
 (0)