topical media & game development

talk show tell print

mobile-query-three-www-live-playground-vendor-CodeMirror2-mode-groovy-index.htm / htm



  <!doctype html>
  <html>
    <head>
      <title>CodeMirror: Groovy mode</title>
      <link rel="stylesheet" href="../../lib/codemirror.css">
      <script src="../../lib/codemirror.js"></script>
      <script src="groovy.js"></script>
      <link rel="stylesheet" href="../../doc/docs.css">
      <style>.CodeMirror {border-top: 1px solid #500; border-bottom: 1px solid #500;}</style>
    </head>
    <body>
      <h1>CodeMirror: Groovy mode</h1>
  
  <form><textarea id="code" name="code">
  //Pattern for groovy script
  def p = ~/.*\.groovy/
  new File( 'd:\\scripts' ).eachFileMatch(p) {f ->
    // imports list
    def imports = []
    f.eachLine {
      // condition to detect an import instruction
      ln -> if ( ln =~ '^import .*' ) {
        imports << "{ln - 'import '}"
      }
    }
    // print thmen
    if ( ! imports.empty ) {
      println f
      imports.each{ println "   it" }
    }
  }
  
  /* Coin changer demo code from http://groovy.codehaus.org */
  
  enum UsCoin {
    quarter(25), dime(10), nickel(5), penny(1)
    UsCoin(v) { value = v }
    final value
  }
  
  enum OzzieCoin {
    fifty(50), twenty(20), ten(10), five(5)
    OzzieCoin(v) { value = v }
    final value
  }
  
  def plural(word, count) {
    if (count == 1) return word
    word[-1] == 'y' ? word[0..-2] + "ies" : word + "s"
  }
  
  def change(currency, amount) {
    currency.values().inject([]){ list, coin ->
       int count = amount / coin.value
       amount = amount % coin.value
       list += "count {plural(coin.toString(), count)}"
    }
  }
  </textarea></form>
  
      <script>
        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
          lineNumbers: true,
          matchBrackets: true,
          mode: "text/x-groovy"
        });
      </script>
  
      <p><strong>MIME types defined:</strong> <code>text/x-groovy</code></p>
    </body>
  </html>
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.