Skip to content

Commit 8bf8eb8

Browse files
azizkprincemaple
authored andcommitted
README: added feature examples.
1 parent 6b84f5a commit 8bf8eb8

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,66 @@ ElixirSyntax was initially based on the [Elixir.tmbundle package](https://github
66

77
See [CHANGELOG.md](./CHANGELOG.md) for the list of releases and noteworthy changes.
88

9+
## Features
10+
11+
Some of the provided features are not immediately evident. Among them are:
12+
13+
<style>
14+
blockquote { font-family:monospace;white-space:pre;background-color:#282923;color:#eee !important }
15+
.fnc { color:#67d8ef }
16+
.blu_i { color:#67d8ef;font-style:italic }
17+
.mod { color:#70a800 }
18+
.kw { color:#f92472 }
19+
.intp_bg { background-color: rgba(0, 0, 0, 0.03) }
20+
.intp_dlm { color:#ababab }
21+
.str_dlm { color:#dbca33 }
22+
.str { color:#e7db74 }
23+
.prpl { color:#ac80ff }
24+
.akw { color:#8a66cc }
25+
.colon { color:#aeafad }
26+
.entity { color:#a6e22c }
27+
.param { color:#fd9621;font-style:italic }
28+
</style>
29+
30+
### The `fragment` and `sql` functions
31+
32+
SQL syntax is highlighted inside Ecto's `fragment` macro.
33+
34+
<blockquote><span class="mod">Post</span>
35+
<span class="kw">|></span> <span class="fnc">where</span>([post], <span class="fnc">fragment</span>(<span class="str_dlm">"</span><span class="prpl">?</span>.full_text <span class="kw">&lt;@</span> <span class="fnc">to_tsquery</span>(<span class="prpl">?</span>)<span class="str_dlm">"</span>, post, terms))
36+
</blockquote>
37+
38+
Add an `sql` macro/function to your project to enjoy SQL highlighting anywhere it's used.
39+
40+
<blockquote><span class="blu_i">defmacro</span> <span class="entity">sql</span>(<span class="param">sql</span>), <span class="akw">do</span><span class="colon">:</span> sql
41+
<span class="fnc">sql</span>(<span class="str_dlm">"</span><span class="kw">SELECT</span> <span class="param">*</span> <span class="kw">FROM</span> posts <span class="kw">ORDER</span> <span class="kw">BY</span> title <span class="kw">GROUP</span> <span class="kw">BY</span> user_id<span class="str_dlm">"</span>)
42+
</blockquote>
43+
44+
### The JSON `~j` and `~J` sigils
45+
46+
Embed JSON strings in your Elixir code. (Notice the interpolated Elixir code is rendered properly.)
47+
48+
<blockquote><span class="blu_i">~j</span><span class="str_dlm">"""</span>
49+
{
50+
<span class="str_dlm">"</span><span class="str">key</span><span class="str_dlm">"</span>: <span class="str_dlm">"</span><span class="intp_dlm">#{</span><span class="intp_bg">value</span><span class="intp_dlm">}</span><span class="str_dlm">"</span>,
51+
<span class="str_dlm">"</span><span class="intp_dlm">#{</span><span class="intp_bg">key</span><span class="intp_dlm">}</span><span class="str_dlm">"</span>: <span class="str_dlm">"</span><span class="str">value</span><span class="str_dlm">"</span>
52+
}
53+
<span class="str_dlm">"""</span>
54+
</blockquote>
55+
56+
### The YAML `~y` and `~Y` sigils
57+
58+
<blockquote><span class="blu_i">~Y</span><span class="str_dlm">"""</span>
59+
<span class="kw">user</span>:
60+
<span class="kw">name</span>: <span class="str">YAML</span>
61+
<span class="kw">born</span>: <span class="prpl">2001</span><span class="prpl">-</span><span class="prpl">05</span><span class="prpl">-</span><span class="prpl">11</span>
62+
<span class="str_dlm">"""</span>
63+
</blockquote>
64+
65+
### Etc.
66+
67+
Also supported are LiveView (`~L"..."`) and the full PCRE syntax (`~r"..."`).
68+
969
## Contributors/Maintainers
1070

1171
- [@azizk](https://github.com/azizk) rewrote the whole syntax definition with an extensive test-suite and added a wealth of new features. ⭐

0 commit comments

Comments
 (0)