Skip to content

Commit e5c25d0

Browse files
authored
Org: Keep all newlines (#951)
- Move the `*` operator to inside the capturing group so all characters that match `\s` is preserved and not just the first character. - Add tests. - Resolves #845 <details><summary>Input</summary> ```orgmode Generic text. /Italicized/ *strong* =Heading= ~Codeblock~ +StrikeTrough+ _Underlined_ ``` </details> ## Before ![Screen Shot 2024-04-01 at 23 26 15](https://github.com/alecthomas/chroma/assets/25481501/0ddc4b34-c434-4798-9b2a-0773b2be4f05) ## After ![Screen Shot 2024-04-01 at 23 25 52](https://github.com/alecthomas/chroma/assets/25481501/ad46591d-8d3c-421e-8564-d3d36abe6fa1)
1 parent d07caa4 commit e5c25d0

File tree

3 files changed

+33
-8
lines changed

3 files changed

+33
-8
lines changed

lexers/embedded/org_mode.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,42 +228,42 @@
228228
</rule>
229229
</state>
230230
<state name="inline">
231-
<rule pattern="(\s)*(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))">
231+
<rule pattern="(\s*)(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))">
232232
<bygroups>
233233
<token type="Text"/>
234234
<token type="GenericStrong"/>
235235
<token type="Text"/>
236236
</bygroups>
237237
</rule>
238-
<rule pattern="(\s)*(/[^/]+?/)((?=\W|\n|$))">
238+
<rule pattern="(\s*)(/[^/]+?/)((?=\W|\n|$))">
239239
<bygroups>
240240
<token type="Text"/>
241241
<token type="GenericEmph"/>
242242
<token type="Text"/>
243243
</bygroups>
244244
</rule>
245-
<rule pattern="(\s)*(=[^\n=]+?=)((?=\W|\n|$))">
245+
<rule pattern="(\s*)(=[^\n=]+?=)((?=\W|\n|$))">
246246
<bygroups>
247247
<token type="Text"/>
248248
<token type="NameClass"/>
249249
<token type="Text"/>
250250
</bygroups>
251251
</rule>
252-
<rule pattern="(\s)*(~[^\n~]+?~)((?=\W|\n|$))">
252+
<rule pattern="(\s*)(~[^\n~]+?~)((?=\W|\n|$))">
253253
<bygroups>
254254
<token type="Text"/>
255255
<token type="NameClass"/>
256256
<token type="Text"/>
257257
</bygroups>
258258
</rule>
259-
<rule pattern="(\s)*(\+[^+]+?\+)((?=\W|\n|$))">
259+
<rule pattern="(\s*)(\+[^+]+?\+)((?=\W|\n|$))">
260260
<bygroups>
261261
<token type="Text"/>
262262
<token type="GenericDeleted"/>
263263
<token type="Text"/>
264264
</bygroups>
265265
</rule>
266-
<rule pattern="(\s)*(_[^_]+?_)((?=\W|\n|$))">
266+
<rule pattern="(\s*)(_[^_]+?_)((?=\W|\n|$))">
267267
<bygroups>
268268
<token type="Text"/>
269269
<token type="GenericUnderline"/>

lexers/testdata/org.actual

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,17 @@ manual/Footnotes.html][page for footnotes]].
143143
# Local Variables:
144144
# org-link-file-path-type: relative
145145
# End:
146+
147+
Generic text.
148+
149+
/Italicized/
150+
151+
*strong*
152+
153+
=Heading=
154+
155+
~Codeblock~
156+
157+
+StrikeTrough+
158+
159+
_Underlined_

lexers/testdata/org.expected

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
{"type":"NameClass","value":"=EXPORT_FILE_NAME="},
2929
{"type":"Text","value":"\nproperty in here. But then you also lose the tag and property\ninheritance Org awesomeness.\n\nline one "},
3030
{"type":"Operator","value":"\\\\"},
31-
{"type":"Text","value":"\nline two\n"},
31+
{"type":"Text","value":"\nline two\n\n"},
3232
{"type":"GenericStrong","value":"*bold*"},
3333
{"type":"Text","value":" "},
3434
{"type":"GenericEmph","value":"/italics/"},
@@ -361,5 +361,16 @@
361361
{"type":"Comment","value":"# org-link-file-path-type: relative"},
362362
{"type":"Text","value":"\n"},
363363
{"type":"Comment","value":"# End:"},
364-
{"type":"Text","value":"\n"}
364+
{"type":"Text","value":"\n\nGeneric text.\n\n"},
365+
{"type":"GenericEmph","value":"/Italicized/"},
366+
{"type":"Text","value":"\n\n"},
367+
{"type":"GenericStrong","value":"*strong*"},
368+
{"type":"Text","value":"\n\n"},
369+
{"type":"NameClass","value":"=Heading="},
370+
{"type":"Text","value":"\n\n"},
371+
{"type":"NameClass","value":"~Codeblock~"},
372+
{"type":"Text","value":"\n\n"},
373+
{"type":"GenericDeleted","value":"+StrikeTrough+"},
374+
{"type":"Text","value":"\n\n"},
375+
{"type":"GenericUnderline","value":"_Underlined_"}
365376
]

0 commit comments

Comments
 (0)