93 lines
2.3 KiB
HTML
93 lines
2.3 KiB
HTML
<h2>Comments</h2>
|
||
<pre><code>// Single line comment
|
||
/* Multi-line
|
||
comment */</code></pre>
|
||
|
||
<h2>Strings</h2>
|
||
<pre><code>"foo 'bar' baz"
|
||
'foo "bar" baz'
|
||
"""Multi-line
|
||
string"""
|
||
'''Multi-line
|
||
string'''
|
||
"String /containing/ slashes"
|
||
</code></pre>
|
||
|
||
<h2>Slashy strings (regex)</h2>
|
||
<pre><code>/.*foo.*/
|
||
/regex"containing quotes"/
|
||
$/.*"(.*)".*/(.*)/$</code></pre>
|
||
|
||
<h2>Interpolation inside GStrings and regex</h2>
|
||
<pre><code>"The answer is ${21*2}"
|
||
"The $foxtype ${foxcolor.join()} fox"
|
||
/foo${21*2}baz/
|
||
'No interpolation here : ${21*2}'</code></pre>
|
||
|
||
<h2>Full example</h2>
|
||
<pre><code>#!/usr/bin/env groovy
|
||
package model
|
||
|
||
import groovy.transform.CompileStatic
|
||
import java.util.List as MyList
|
||
|
||
trait Distributable {
|
||
void distribute(String version) {}
|
||
}
|
||
|
||
@CompileStatic
|
||
class Distribution implements Distributable {
|
||
double number = 1234.234 / 567
|
||
def otherNumber = 3 / 4
|
||
boolean archivable = condition ?: true
|
||
def ternary = a ? b : c
|
||
String name = "Guillaume"
|
||
Closure description = null
|
||
List<DownloadPackage> packages = []
|
||
String regex = ~/.*foo.*/
|
||
String multi = '''
|
||
multi line string
|
||
''' + """
|
||
now with double quotes and ${gstring}
|
||
""" + $/
|
||
even with dollar slashy strings
|
||
/$
|
||
|
||
/**
|
||
* description method
|
||
* @param cl the closure
|
||
*/
|
||
void description(Closure cl) { this.description = cl }
|
||
|
||
void version(String name, Closure versionSpec) {
|
||
def closure = { println "hi" } as Runnable
|
||
|
||
MyList ml = [1, 2, [a: 1, b:2,c :3]]
|
||
for (ch in "name") {}
|
||
|
||
// single line comment
|
||
DownloadPackage pkg = new DownloadPackage(version: name)
|
||
|
||
check that: true
|
||
|
||
label:
|
||
def clone = versionSpec.rehydrate(pkg, pkg, pkg)
|
||
/*
|
||
now clone() in a multiline comment
|
||
*/
|
||
clone()
|
||
packages.add(pkg)
|
||
|
||
assert 4 / 2 == 2
|
||
}
|
||
}</code></pre>
|
||
|
||
<h2>Known failures</h2>
|
||
<p>There are certain edge cases where Prism will fail.
|
||
There are always such cases in every regex-based syntax highlighter.
|
||
However, Prism dares to be open and honest about them.
|
||
If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug.
|
||
</p>
|
||
|
||
<h3>Two divisions on the same line</h3>
|
||
<pre><code>2 / 3 / 4</code></pre> |