Project

General

Profile

Statistics
| Revision:

root / trunk / scripts / codemirror / mode / groovy / index.html @ 216

History | View | Annotate | Download (1.72 KB)

1
<!doctype html>
2
<html>
3
  <head>
4
    <title>CodeMirror: Groovy mode</title>
5
    <link rel="stylesheet" href="../../lib/codemirror.css">
6
    <script src="../../lib/codemirror.js"></script>
7
    <script src="groovy.js"></script>
8
    <link rel="stylesheet" href="../../doc/docs.css">
9
    <style>.CodeMirror {border-top: 1px solid #500; border-bottom: 1px solid #500;}</style>
10
  </head>
11
  <body>
12
    <h1>CodeMirror: Groovy mode</h1>
13

    
14
<form><textarea id="code" name="code">
15
//Pattern for groovy script
16
def p = ~/.*\.groovy/
17
new File( 'd:\\scripts' ).eachFileMatch(p) {f ->
18
  // imports list
19
  def imports = []
20
  f.eachLine {
21
    // condition to detect an import instruction
22
    ln -> if ( ln =~ '^import .*' ) {
23
      imports << "${ln - 'import '}"
24
    }
25
  }
26
  // print thmen
27
  if ( ! imports.empty ) {
28
    println f
29
    imports.each{ println "   $it" }
30
  }
31
}
32

    
33
/* Coin changer demo code from http://groovy.codehaus.org */
34

    
35
enum UsCoin {
36
  quarter(25), dime(10), nickel(5), penny(1)
37
  UsCoin(v) { value = v }
38
  final value
39
}
40

    
41
enum OzzieCoin {
42
  fifty(50), twenty(20), ten(10), five(5)
43
  OzzieCoin(v) { value = v }
44
  final value
45
}
46

    
47
def plural(word, count) {
48
  if (count == 1) return word
49
  word[-1] == 'y' ? word[0..-2] + "ies" : word + "s"
50
}
51

    
52
def change(currency, amount) {
53
  currency.values().inject([]){ list, coin ->
54
     int count = amount / coin.value
55
     amount = amount % coin.value
56
     list += "$count ${plural(coin.toString(), count)}"
57
  }
58
}
59
</textarea></form>
60

    
61
    <script>
62
      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
63
        lineNumbers: true,
64
        matchBrackets: true,
65
        mode: "text/x-groovy"
66
      });
67
    </script>
68

    
69
    <p><strong>MIME types defined:</strong> <code>text/x-groovy</code></p>
70
  </body>
71
</html>