Skip to content

Commit b2e617b

Browse files
authored
feat: adding support for TOML highlighting (#26)
1 parent 543ca91 commit b2e617b

File tree

5 files changed

+79
-0
lines changed

5 files changed

+79
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,6 @@ const ele = syntaxHighlighter('console.log("Hello, world!");', 'js', { ...opts,
9696
| Shell | `bash`, `sh`, `shell`, `zsh` |
9797
| SQL | `cql`, `mssql`, `mysql`, `plsql`, `postgres`, `postgresql`, `pgsql`, `sql`, `sqlite` |
9898
| Swift | `swift` |
99+
| TOML | `toml` |
99100
| TypeScript | `ts`, `typescript` |
100101
| YAML | `yaml`, `yml` |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = {
2+
language: 'TOML',
3+
mode: {
4+
primary: 'toml',
5+
aliases: {},
6+
},
7+
};
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# This is a TOML document.
2+
3+
title = "TOML Example"
4+
5+
[owner]
6+
name = "Tom Preston-Werner"
7+
dob = 1979-05-27T07:32:00-08:00 # First class dates
8+
9+
[database]
10+
server = "192.168.1.1"
11+
ports = [ 8000, 8001, 8002 ]
12+
connection_max = 5000
13+
enabled = true
14+
15+
[servers]
16+
17+
# Indentation (tabs and/or spaces) is allowed but not required
18+
[servers.alpha]
19+
ip = "10.0.0.1"
20+
dc = "eqdc10"
21+
22+
[servers.beta]
23+
ip = "10.0.0.2"
24+
dc = "eqdc10"
25+
26+
[clients]
27+
data = [ ["gamma", "delta"], [1, 2] ]
28+
29+
# Line breaks are OK when inside arrays
30+
hosts = [
31+
"alpha",
32+
"omega"
33+
]

__tests__/__snapshots__/codeMirror.test.js.snap

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,43 @@ exports[`Supported languages Swift should syntax highlight an example 1`] = `
287287
</div>"
288288
`;
289289
290+
exports[`Supported languages TOML should syntax highlight an example 1`] = `
291+
"<div class=\\"cm-s-neo\\"><span class=\\"cm-comment\\"># This is a TOML document.</span>
292+
293+
<span class=\\"cm-property\\">title</span> = <span class=\\"cm-string\\">&quot;TOML Example&quot;</span>
294+
295+
<span class=\\"cm-atom\\">[owner]</span>
296+
<span class=\\"cm-property\\">name</span> = <span class=\\"cm-string\\">&quot;Tom Preston-Werner&quot;</span>
297+
<span class=\\"cm-property\\">dob</span> = <span class=\\"cm-number\\">1979-05-27</span>T<span class=\\"cm-number\\">07</span>:<span class=\\"cm-number\\">32</span>:<span class=\\"cm-number\\">00-08</span>:<span class=\\"cm-number\\">00</span> <span class=\\"cm-comment\\"># First class dates</span>
298+
299+
<span class=\\"cm-atom\\">[database]</span>
300+
<span class=\\"cm-property\\">server</span> = <span class=\\"cm-string\\">&quot;192.168.1.1&quot;</span>
301+
<span class=\\"cm-property\\">ports</span> = <span class=\\"cm-bracket\\">[</span> <span class=\\"cm-number\\">8000</span>, <span class=\\"cm-number\\">8001</span>, <span class=\\"cm-number\\">8002</span> <span class=\\"cm-bracket\\">]</span>
302+
<span class=\\"cm-property\\">connection_max</span> = <span class=\\"cm-number\\">5000</span>
303+
<span class=\\"cm-property\\">enabled</span> = <span class=\\"cm-atom\\">true</span>
304+
305+
<span class=\\"cm-atom\\">[servers]</span>
306+
307+
<span class=\\"cm-comment\\"># Indentation (tabs and/or spaces) is allowed but not required</span>
308+
<span class=\\"cm-atom\\">[servers.alpha]</span>
309+
<span class=\\"cm-property\\">ip</span> = <span class=\\"cm-string\\">&quot;10.0.0.1&quot;</span>
310+
<span class=\\"cm-property\\">dc</span> = <span class=\\"cm-string\\">&quot;eqdc10&quot;</span>
311+
312+
<span class=\\"cm-atom\\">[servers.beta]</span>
313+
<span class=\\"cm-property\\">ip</span> = <span class=\\"cm-string\\">&quot;10.0.0.2&quot;</span>
314+
<span class=\\"cm-property\\">dc</span> = <span class=\\"cm-string\\">&quot;eqdc10&quot;</span>
315+
316+
<span class=\\"cm-atom\\">[clients]</span>
317+
<span class=\\"cm-property\\">data</span> = <span class=\\"cm-bracket\\">[</span> <span class=\\"cm-bracket\\">[</span><span class=\\"cm-string\\">&quot;gamma&quot;</span>, <span class=\\"cm-string\\">&quot;delta&quot;</span><span class=\\"cm-bracket\\">]</span>, <span class=\\"cm-bracket\\">[</span><span class=\\"cm-number\\">1</span>, <span class=\\"cm-number\\">2</span><span class=\\"cm-bracket\\">]</span> <span class=\\"cm-bracket\\">]</span>
318+
319+
<span class=\\"cm-comment\\"># Line breaks are OK when inside arrays</span>
320+
<span class=\\"cm-property\\">hosts</span> = <span class=\\"cm-bracket\\">[</span>
321+
<span class=\\"cm-string\\">&quot;alpha&quot;</span>,
322+
<span class=\\"cm-string\\">&quot;omega&quot;</span>
323+
<span class=\\"cm-bracket\\">]</span>
324+
</div>"
325+
`;
326+
290327
exports[`Supported languages TypeScript should syntax highlight an example 1`] = `
291328
"<div class=\\"cm-s-neo\\"><span class=\\"cm-keyword\\">let</span> { <span class=\\"cm-def\\">a</span>, <span class=\\"cm-def\\">b</span> }: { <span class=\\"cm-property\\">a</span>: <span class=\\"cm-type\\">string</span>, <span class=\\"cm-property\\">b</span>: <span class=\\"cm-type\\">number</span> } <span class=\\"cm-operator\\">=</span> <span class=\\"cm-variable\\">o</span>;
292329
</div>"

src/utils/cm-mode-imports.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ require('codemirror/mode/rust/rust');
2121
require('codemirror/mode/shell/shell');
2222
require('codemirror/mode/sql/sql');
2323
require('codemirror/mode/swift/swift');
24+
require('codemirror/mode/toml/toml');
2425
require('codemirror/mode/yaml/yaml');

0 commit comments

Comments
 (0)