@@ -6,6 +6,66 @@ ElixirSyntax was initially based on the [Elixir.tmbundle package](https://github
66
77See [ 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 " >< ; @</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