topical media & game development

talk show tell print

mobile-query-three-www-vendor-CodeMirror2-mode-go-index.htm / htm



  <!doctype html>
  <html>
    <head>
      <title>CodeMirror: Go mode</title>
      <link rel="stylesheet" href="../../lib/codemirror.css">
      <link rel="stylesheet" href="../../theme/elegant.css">
      <script src="../../lib/codemirror.js"></script>
      <script src="go.js"></script>
      <link rel="stylesheet" href="../../doc/docs.css">
      <style>.CodeMirror {border:1px solid #999; background:#ffc}</style>
    </head>
    <body>
      <h1>CodeMirror: Go mode</h1>
  
  <form><textarea id="code" name="code">
  // Prime Sieve in Go.
  // Taken from the Go specification.
  // Copyright © The Go Authors.
  
  package main
  
  import "fmt"
  
  // Send the sequence 2, 3, 4, ... to channel 'ch'.
  func generate(ch chan&lt;- int) {
          for i := 2; ; i++ {
                  ch &lt;- i  // Send 'i' to channel 'ch'
          }
  }
  
  // Copy the values from channel 'src' to channel 'dst',
  // removing those divisible by 'prime'.
  func filter(src &lt;-chan int, dst chan&lt;- int, prime int) {
          for i := range src {    // Loop over values received from 'src'.
                  if i\%prime != 0 {
                          dst &lt;- i  // Send 'i' to channel 'dst'.
                  }
          }
  }
  
  // The prime sieve: Daisy-chain filter processes together.
  func sieve() {
          ch := make(chan int)  // Create a new channel.
          go generate(ch)       // Start generate() as a subprocess.
          for {
                  prime := &lt;-ch
                  fmt.Print(prime, "\n")
                  ch1 := make(chan int)
                  go filter(ch, ch1, prime)
                  ch = ch1
          }
  }
  
  func main() {
          sieve()
  }
  </textarea></form>
  
      <script>
        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
          theme: "elegant",
          matchBrackets: true,
          indentUnit: 8,
          tabSize: 8,
          indentWithTabs: true,
          mode: "text/x-go"
        });
      </script>
  
      <p><strong>MIME type:</strong> <code>text/x-go</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.