| 9 | |
---|
| 10 | <div id="navbar"> |
---|
| 11 | <table width="160" cellspacing="0" style="border: 1px solid #ccc; padding: 0.5em; margin: 0 0 0em 0em;" bgcolor="#F0F0F0"> |
---|
| 12 | <th bgcolor="#bbbbbb"><strong><center>Navigation</center></strong></th> |
---|
| 13 | <tr bgcolor="#F0F0F0"></tr> |
---|
| 14 | <tr><td><a href="/projects/visuald/wiki/News" title="Latest changes">News</a></td></tr> |
---|
| 15 | <tr><td><strong><a href="/projects/visuald/wiki/VersionHistory" title="Version History">Version History</a></strong></td></tr> |
---|
| 16 | <tr><td><a href="/projects/visuald/wiki/Features" title="Visual D Features">Features</a></td></tr> |
---|
| 17 | <tr><td>Tour</td></tr> |
---|
| 18 | <tr><td> <a href="/projects/visuald/wiki/Tour/GlobalOptions" title="Global options">Global options</a></td></tr> |
---|
| 19 | <tr><td> <a href="/projects/visuald/wiki/Tour/ProjectWizard" title="Project Wizard to create new projects">Project Wizard</a></td></tr> |
---|
| 20 | <tr><td> <a href="/projects/visuald/wiki/Tour/Editor" title="Language support in the editor">Editor</a></td></tr> |
---|
| 21 | <tr><td> <a href="/projects/visuald/wiki/Tour/Search" title="Search symbols and files">Search window</a></td></tr> |
---|
| 22 | <tr><td> <a href="/projects/visuald/wiki/Tour/TokenReplace" title="Token Search and Replace">Token Replace</a></td></tr> |
---|
| 23 | <tr><td> <a href="/projects/visuald/wiki/Tour/ProjectConfig" title="Setting up build settings">Project config</a></td></tr> |
---|
| 24 | <tr><td> <a href="/projects/visuald/wiki/Tour/Debugger" title="Debugger support">Debugging</a></td></tr> |
---|
| 25 | <tr><td> <a href="/projects/visuald/wiki/Tour/CppConversion" title="C++ to D Conversion Wizard">C++ to D Wizard</a></td></tr> |
---|
| 26 | <tr><td> <a href="/projects/visuald/wiki/Tour/Profiling" title="Profiler window">Profiling</a></td></tr> |
---|
| 27 | <tr><td> <a href="/projects/visuald/wiki/Tour/BrowseInfo" title="Browse information">Browse info</a></td></tr> |
---|
| 28 | <tr><td><a href="/projects/visuald/browser/downloads" title="All Visual D downloads">Downloads</a></td></tr> |
---|
| 29 | <tr><td><a href="/projects/visuald/wiki/Installation" title="Installation">Installation</a></td></tr> |
---|
| 30 | <tr><td><a href="/projects/visuald/wiki/KnownIssues" title="Installation">Known issues</a></td></tr> |
---|
| 31 | <tr><td><a href="/forums/viewforum.php?f=265" title="Forum">Forum</a></td></tr> |
---|
| 32 | <tr><td><a href="/projects/visuald/report/1" title="Active Tickets">Active Tickets</a></td></tr> |
---|
| 33 | <tr><td><a href="/projects/visuald/wiki/Build_from_source" title="Building from source">Building from source</a></td></tr> |
---|
| 34 | </tr> |
---|
| 35 | </table> |
---|
32 | | |
---|
33 | | {{{ |
---|
34 | | #!html |
---|
35 | | <div align="center"> |
---|
36 | | }}} |
---|
37 | | [[Image(source:wiki/compile_and_run_opt.png)]] |
---|
38 | | {{{ |
---|
39 | | #!html |
---|
40 | | </div> |
---|
41 | | }}} |
---|
42 | | |
---|
43 | | The standard is "-unittest --main" so after successfully building the |
---|
44 | | source file to an executable ("--main" adds an empty main function to the source to automatically create a valid executable), your unit tests will run and you will see |
---|
45 | | the result in the output pane. |
---|
46 | | |
---|
47 | | [Actually, while writing this text a number of issues have been fixed and improvements |
---|
48 | | have been made, so please try the latest release candidate for next version of Visual D |
---|
49 | | from the download folder (0.3.37rc1 as of now). Especially, it will remove some of the |
---|
50 | | command line options used to call rdmd that make it crash pretty often.] |
---|
51 | | |
---|
52 | | {{{ |
---|
53 | | #!html |
---|
54 | | <table><tr><td valign="top" width="45%"> |
---|
55 | | }}} |
---|
56 | | If you add "-cov" to the command line aswell the executable will be instrumented to record |
---|
57 | | the source code lines that have been executed and will mark the lines that have |
---|
58 | | code generated but are never executed. This information is written into files named as the |
---|
59 | | source files but with extension ".lst". If you enable option "Colorize Coverage" in |
---|
60 | | the Visual D colorizer settings (easily reachable through the new entry in the Visual D |
---|
61 | | menu), these lines will be highlighted in the editor. The highlighting will not show |
---|
62 | | up unless the lst-file is newer than the source file as it will probably be out of sync |
---|
63 | | otherwise. |
---|
64 | | |
---|
65 | | If you fix the last test and add the line |
---|
66 | | assert(fib(19) == 4181); |
---|
67 | | to the unittest, and run the unittest again, all lines will become green. |
---|
68 | | |
---|
69 | | If you start editing the source file Visual D will try to keep coverage information in sync. If you want to get rid of the coverage coloring, just resave the source file. Visual D will assume the coverage is invalid then and stop displaying it. |
---|
70 | | |
---|
71 | | If you don't want syntax highlighting from coverage generated .LST files, you can disable it by disabling the respective option on the Tools->Options->Text Editor->D->Colorizer page. |
---|
72 | | {{{ |
---|
73 | | #!html |
---|
74 | | </td><td width="55%"> |
---|
75 | | }}} |
---|
76 | | [[Image(source:wiki/coverage.png, 100%)]] |
---|
77 | | {{{ |
---|
78 | | #!html |
---|
79 | | </td></tr></table> |
---|
80 | | }}} |
---|
81 | | |
---|
82 | | If you select code within the editor and issue the command "Compile and Run", only |
---|
83 | | the selected code will be passed to rdmd through the --eval option. This allows to |
---|
84 | | execute just a code snippet like a script and see whether it compiles and how it behaves. |
---|
85 | | |
---|
86 | | = New code completion engine by Alexander Bothe = |
---|
87 | | |
---|
88 | | While Visual D has been running a semantic analysis for about a year now to |
---|
89 | | support code completion and type information in tool tips, I didn't have much time |
---|
90 | | to complete it to support all aspects of the D programming language. It is especially |
---|
91 | | lacking on topics like template instantiation, function overload resolution and |
---|
92 | | unified function call syntax (UFCS). Also, compile time function evaluation (CTFE) is |
---|
93 | | pretty incomplete. |
---|
94 | | Due to its pretty large memory foot print the |
---|
95 | | stop-the-world garbage collector has been interrupting the source code editing to |
---|
96 | | inacceptable degrees, so the analyzer had been |
---|
97 | | moved into a separate process communicating with Visual D as a local COM server. |
---|
98 | | |
---|
99 | | This also opens the door to easily exchange the semantic analyzer with a different engine, |
---|
100 | | so this is where Alexander Bothe's parsing engine enters the scene, the engine that |
---|
101 | | also powers Mono-D and D-IDE. |
---|
102 | | |
---|
103 | | {{{ |
---|
104 | | #!html |
---|
105 | | <div align="center"> |
---|
106 | | }}} |
---|
107 | | [[Image(source:wiki/intellisense_options.png)]] |
---|
108 | | {{{ |
---|
109 | | #!html |
---|
110 | | </div> |
---|
111 | | }}} |
---|
112 | | |
---|
113 | | Alex has put much more effort into making the semantic |
---|
114 | | analysis complete, and it obviously does it more efficiently. I wrapped the library |
---|
115 | | as a local COM server implementing the same interfaces as Visual D's engine (having to do |
---|
116 | | this in C# was a bit of a downer) and just using a different factory now allows switching |
---|
117 | | between the two. Right now, Visual D's engine is the default, but you can select |
---|
118 | | Alex's engine by enabling the respective checkbox in the Intellisense |
---|
119 | | settings page (there is a new menu entry for faster access). It provides UFCS expansion and also displays DDoc help strings in tool tips. |
---|
120 | | |
---|
121 | | There is currently work being done on the D front end implemented by DMD |
---|
122 | | to be converted from C++ to D, bringing it within reach of using it as a library for IDEs. |
---|
123 | | This might produce |
---|
124 | | another semantic engine in the future which easily keeps in lock step with the latest |
---|
125 | | compiler updates. |
---|
126 | | |
---|
127 | | = LDC support = |
---|
128 | | |
---|
129 | | LDC, the D compiler built on top of the LLVM compiler infrastructure is getting |
---|
130 | | close to being useful on Windows aswell (at least on Win64 the longest standing |
---|
131 | | blocker exception handling is starting to work). You can grab pre-compiled binaries |
---|
132 | | here: http://www.redstar.de/ldc/LDC.zip (after extracting to any directory just update |
---|
133 | | the paths specified in LDC2\etc\ldc2.conf). |
---|
134 | | In the Visual D project options, path settings for the three major compilers have been |
---|
135 | | separated to different pages allowing for different import and library paths aswell. |
---|
136 | | The specified install directories are mapped to macros like $(LDCINSTALLDIR), so they |
---|
137 | | can be reused in other places of your project configuration. |
---|
138 | | To use LDC by your project, select the compiler with the respective option on the |
---|
139 | | General page of your project's property page. |
---|
140 | | |
---|
141 | | {{{ |
---|
142 | | #!html |
---|
143 | | <div align="center"> |
---|
144 | | }}} |
---|
145 | | [[Image(source:wiki/ldc_compiler.png)]] |
---|
146 | | {{{ |
---|
147 | | #!html |
---|
148 | | </div> |
---|
149 | | }}} |
---|
150 | | |
---|
151 | | |
---|
152 | | = Trivia = |
---|
153 | | |
---|
154 | | If you ever wondered why Visual D versions are numbered 0.3.x, here is the explanation: |
---|
155 | | Each package to be loaded in Visual Studio 2008 needs to be equipped with a valid identification |
---|
156 | | called a package load key (PLK). This key is generated by Microsoft and includes |
---|
157 | | author and package name aswell as the major and minor version of the package. It |
---|
158 | | is used to authenticate the package to Visual Studio. |
---|
159 | | Unfortunately the PLK generation service is no longer available as it is no more necessary |
---|
160 | | to have a PLK for Visual Studio 2010 or 2012 extensions. Unless I choose to be inconsistent |
---|
161 | | with the registered version and the displayed version, Visual D is stuck at version 0.3. |
---|
162 | | |