File modules/editor/codemirror/mode/crystal/index.html

Last commit: Sun Dec 17 01:14:09 2017 +0100	Jan Dankert	Integration eines weiteren Code-Editors: Codemirror. Demnächst müssen wir hier mal aufräumen und andere Editoren rauswerfen.
1 <!doctype html> 2 3 <title>CodeMirror: Crystal mode</title> 4 <meta charset="utf-8"/> 5 <link rel=stylesheet href="../../doc/docs.css"> 6 7 <link rel="stylesheet" href="../../lib/codemirror.css"> 8 <script src="../../lib/codemirror.js"></script> 9 <script src="../../addon/edit/matchbrackets.js"></script> 10 <script src="crystal.js"></script> 11 <style> 12 .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} 13 .cm-s-default span.cm-arrow { color: red; } 14 </style> 15 16 <div id=nav> 17 <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> 18 19 <ul> 20 <li><a href="../../index.html">Home</a> 21 <li><a href="../../doc/manual.html">Manual</a> 22 <li><a href="https://github.com/codemirror/codemirror">Code</a> 23 </ul> 24 <ul> 25 <li><a href="../index.html">Language modes</a> 26 <li><a class=active href="#">Crystal</a> 27 </ul> 28 </div> 29 30 <article> 31 <h2>Crystal mode</h2> 32 <form><textarea id="code" name="code"> 33 # Features of Crystal 34 # - Ruby-inspired syntax. 35 # - Statically type-checked but without having to specify the type of variables or method arguments. 36 # - Be able to call C code by writing bindings to it in Crystal. 37 # - Have compile-time evaluation and generation of code, to avoid boilerplate code. 38 # - Compile to efficient native code. 39 40 # A very basic HTTP server 41 require "http/server" 42 43 server = HTTP::Server.new(8080) do |request| 44 HTTP::Response.ok "text/plain", "Hello world, got #{request.path}!" 45 end 46 47 puts "Listening on http://0.0.0.0:8080" 48 server.listen 49 50 module Foo 51 abstract def abstract_method : String 52 53 @[AlwaysInline] 54 def with_foofoo 55 with Foo.new(self) yield 56 end 57 58 struct Foo 59 def initialize(@foo : ::Foo) 60 end 61 62 def hello_world 63 @foo.abstract_method 64 end 65 end 66 end 67 68 class Bar 69 include Foo 70 71 @@foobar = 12345 72 73 def initialize(@bar : Int32) 74 end 75 76 macro alias_method(name, method) 77 def {{ name }}(*args) 78 {{ method }}(*args) 79 end 80 end 81 82 def a_method 83 "Hello, World" 84 end 85 86 alias_method abstract_method, a_method 87 88 def show_instance_vars : Nil 89 {% for var in @type.instance_vars %} 90 puts "@{{ var }} = #{ @{{ var }} }" 91 {% end %} 92 end 93 end 94 95 class Baz &lt; Bar; end 96 97 lib LibC 98 fun c_puts = "puts"(str : Char*) : Int 99 end 100 101 baz = Baz.new(100) 102 baz.show_instance_vars 103 baz.with_foofoo do 104 LibC.c_puts hello_world 105 end 106 </textarea></form> 107 <script> 108 var editor = CodeMirror.fromTextArea(document.getElementById("code"), { 109 mode: "text/x-crystal", 110 matchBrackets: true, 111 indentUnit: 2 112 }); 113 </script> 114 115 <p><strong>MIME types defined:</strong> <code>text/x-crystal</code>.</p> 116 </article>
Download modules/editor/codemirror/mode/crystal/index.html
History Sun, 17 Dec 2017 01:14:09 +0100 Jan Dankert Integration eines weiteren Code-Editors: Codemirror. Demnächst müssen wir hier mal aufräumen und andere Editoren rauswerfen.