Warning, /frameworks/syntax-highlighting/autotests/folding/highlight.d.fold is written in an unsupported language. File is not indexed.
0001 <beginfold id='1'>/********</beginfold id='1'> 0002 * Highlight testing module. 0003 * 0004 * Do not attempt to run this! 0005 <endfold id='1'>***********/</endfold id='1'> 0006 module highlighttest; 0007 import X = null; 0008 0009 <beginfold id='2'>/++</beginfold id='2'> Pragma directives. DDoc + DDoc embedded items. Special Tokens. 0010 + 0011 + --- 0012 + // comment 0013 + #line 12 "hightlighttest.d" <beginfold id='3'>/*</beginfold id='3'> block comment <endfold id='3'>*/</endfold id='3'> 0014 + #line __LINE__ __FILE__ <beginfold id='2'>/++</beginfold id='2'> embedded block comment <endfold id='2'>+/</endfold id='2'> 0015 + 0016 + pragma <beginfold id='3'>/*</beginfold id='3'> <endfold id='3'>*/</endfold id='3'> (msg, "what?"); 0017 + pragma(<beginfold id='2'>/++</beginfold id='2'> <endfold id='2'>+/</endfold id='2'> lib, "insane.a"); 0018 + pragma(inline); 0019 + pragma(linkerDirective); 0020 + pragma(mangle); 0021 + pragma(startaddress); 0022 + pragma(D_Custom_Extension, "custom data"); 0023 + pragma(foo 0); 0024 + --- 0025 <endfold id='2'>+/</endfold id='2'> 0026 0027 /// version condition 0028 version = X; 0029 version = 1_2_3; 0030 version (X) ; 0031 version(linux) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0032 0033 /// linkage 0034 extern 0035 (C) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0036 extern : 0037 ; 0038 extern (C++) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0039 extern (C++, foo.bar.baz) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0040 extern (D) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0041 extern (Windows) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0042 extern (Pascal) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0043 extern (System) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0044 extern (unknown) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0045 extern (C,) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0046 extern (C++, foo, bar) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0047 0048 /// alias & typedef 0049 alias int.min minint; 0050 typedef int myint; 0051 0052 int main(char[][] args) <beginfold id='4'>{</beginfold id='4'> 0053 /// statements 0054 if (1) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0055 else <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0056 with (N) <beginfold id='4'>{</beginfold id='4'>x = B<endfold id='4'>}</endfold id='4'> 0057 0058 /// attributes 0059 auto x = 1; 0060 static if (true) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0061 void (in X, out Y) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> // NOTE: using in like this is rare, more common to use as an expression and no way to tell apart? 0062 0063 /// deprecated 0064 deprecated void fct (); 0065 0066 /// types 0067 void a; 0068 ushort u; 0069 int[uint] AA; 0070 class C; 0071 enum N : int <beginfold id='4'>{</beginfold id='4'> A = 5, B <endfold id='4'>}</endfold id='4'> 0072 typeof(u) u2; 0073 0074 /// expressions 0075 x = cast(int) 55; 0076 void* p = null; 0077 p = cast(void*) new int; 0078 x = 1 in AA; // NOTE: a THIRD use of in. How to detect?? 0079 assert (true); 0080 0081 /// libsymbols 0082 string s = ""; 0083 throw new Exception; 0084 TypeInfo ti = typeid(int); 0085 0086 /// tests 0087 debug <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0088 debug (2) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0089 debug (DSymb) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0090 unittest <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0091 0092 /// scope (as attribute and as statement) 0093 scope struct S; 0094 scope (exit) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0095 scope 0096 (success) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> // NOTE: rules cannot match across new-lines 0097 scope (failure) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0098 0099 /// Properties 0100 x = int.min; 0101 s = (5-3).stringof; 0102 0103 /// strings 0104 s = r"raw string"; 0105 s = x"00FF"; 0106 s = \n \a; 0107 s = \u1234; 0108 s = \U12345678; 0109 s = \& ; 0110 char c = 'a'; 0111 s = "abc 012 \" \n \x12 \u1234 \U12345678"; 0112 s = `BQString '"`; 0113 s = q{foo "bar" 123}; 0114 s = q"FOO 0115 foo 0116 FOO"; 0117 s = q"[foo [bar] q"[baz]"]"; 0118 s = q"(foo (bar) q"(baz)")"; 0119 s = q"<foo <bar> q"<baz>">"; 0120 s = q"{foo {bar} q"{baz}"}"; 0121 s = q"/foo/"; 0122 s = q"!foo!"; 0123 0124 /// region markers 0125 <beginfold id='5'>//BEGIN</beginfold id='5'> x 0126 <endfold id='5'>//END</endfold id='5'> x 0127 0128 /// DDoc 0129 <beginfold id='1'>/*******</beginfold id='1'> 0130 * DDoc 0131 * 0132 * Section: 0133 * New section. 0134 * $(I italic) 0135 <endfold id='1'>*******/</endfold id='1'> 0136 <beginfold id='2'>/+++++++</beginfold id='2'> 0137 + DDoc 0138 + /+ 0139 + +/ 0140 <endfold id='2'>+++++++/</endfold id='2'> 0141 0142 // comments 0143 // FIXME NOTE 0144 <beginfold id='3'>/*</beginfold id='3'> comment <endfold id='3'>*/</endfold id='3'> 0145 <beginfold id='6'>/+</beginfold id='6'> comment <beginfold id='6'>/+</beginfold id='6'> nested comment <endfold id='6'>+/</endfold id='6'> <endfold id='6'>+/</endfold id='6'> 0146 0147 /// brace folding 0148 <beginfold id='4'>{</beginfold id='4'> 0149 <endfold id='4'>}</endfold id='4'> 0150 0151 <beginfold id='1'>/**</beginfold id='1'> normal text 0152 * --- 0153 * .x; 0154 * .. 0155 * ... 0156 * .... 0157 * ..... 0158 * _._ 0159 * _e1 0160 * --- 0161 <endfold id='1'>*/</endfold id='1'> 0162 0163 /// float and int literals 0164 int i; 0165 real r; 0166 ireal ir; 0167 r = .0; 0168 r = 0f; 0169 ir = 0e0i; 0170 ir = 0.fi; 0171 r = 0.0e0; 0172 r = 0xF.Fp0; 0173 r = 0x_._p0_; 0174 i = 5; 0175 i = -1; 0176 i = 0b10; 0177 i = 0070; 0178 i = 00; 0179 i = 0xF0; 0180 0181 /// ranges 0182 int[] A; 0183 i = A[1]; 0184 A = A[0..$]; 0185 A = A[0..0]; 0186 A = A[0..length]; 0187 0188 /// labels 0189 label: 0190 goto label; 0191 0192 /// function, delegate 0193 creal function () fp = function creal() <beginfold id='4'>{</beginfold id='4'> return 0f+0fi; <endfold id='4'>}</endfold id='4'>; 0194 void delegate (in int i, lazy int b) dg = delegate void (int, int) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0195 0196 /// in, out, body 0197 // NOTE: highlighting in & out as statements here could be difficult 0198 float F () 0199 in <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0200 out (result) <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0201 body <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'> 0202 0203 /// try, catch, finally 0204 try <beginfold id='4'>{</beginfold id='4'> 0205 throw new Exception("oh no... "); 0206 <endfold id='4'>}</endfold id='4'> catch (Exception e) <beginfold id='4'>{</beginfold id='4'> 0207 <endfold id='4'>}</endfold id='4'> finally <beginfold id='4'>{</beginfold id='4'> 0208 <endfold id='4'>}</endfold id='4'> 0209 0210 /// mixin 0211 mixin("return false;").stringof; 0212 0213 /// templates 0214 macro; // what does this do? 0215 template Tp (T) <beginfold id='4'>{</beginfold id='4'> 0216 Tp t; 0217 <endfold id='4'>}</endfold id='4'> 0218 Tp!(int) y; 0219 <endfold id='4'>}</endfold id='4'>