Difference between revisions of "Mono-D"

From D Wiki
Jump to: navigation, search
(Added tutorial)
m
Line 98: Line 98:
 
=== Build D Projects outside MonoDevelop ===
 
=== Build D Projects outside MonoDevelop ===
 
You still need a working MonoDevelop and Mono-D installation in order to proceed with the following step!<br/>
 
You still need a working MonoDevelop and Mono-D installation in order to proceed with the following step!<br/>
Just execute <pre>mdtool MyDSln.sln</pre> to get e.g. a D project/solution built with Mono-D's facilities.<br/>
+
Just execute <pre>mdtool build MyDSln.sln</pre> to get e.g. a D project/solution built with Mono-D's facilities.<br/>
 
<b>Note:</b> You'll first off need to find mdtool in your XamarinStudio/MonoDevelop installation.
 
<b>Note:</b> You'll first off need to find mdtool in your XamarinStudio/MonoDevelop installation.
 
On Linux, this command may look like
 
On Linux, this command may look like
<pre>/opt/mono/bin/mdtool MyDSln.sln</pre>
+
<pre>/opt/mono/bin/mdtool build MyDSln.sln</pre>
 
On Windows, this may looks like
 
On Windows, this may looks like
<pre>"C:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe" MyDSln.sln</pre>
+
<pre>"C:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe" build MyDSln.sln</pre>
 
If you only have one .sln existing in a directory, just invoking mdtool inside that directory is also sufficient!
 
If you only have one .sln existing in a directory, just invoking mdtool inside that directory is also sufficient!

Revision as of 09:29, 27 July 2014

Mono-D brings D support to the cross-platform XamarinStudio/MonoDevelop IDE.

Mono-D screenshot1.png

Features

  • D Project management
    • Managing files & resources
    • Managing inter-project dependencies in a solution
    • Build projects and prepare them for being deployed
  • Ad hoc DUB support. Despite the package.json file not being a native format that is supported by the Mono/.Net facilities, there's still a bunch of things wrapped for being used within MD.
    • Open DUB package.json files as projects
    • Resolving package dependencies and subpackages and opening all of them as projects, too
    • Build support
    • ...
  • Basic Visual-D project format support
  • dmd, gdc, ldc2, rdmd, dub, make toolchain support
  • Rich editing & refactoring facilities:
    • Halfway™ decent auto code completion including pre-compile time
      • template deduction & evaluation,
      • mixins & mixin expression,
      • expression value as well as
      • compiler traits,
      • op overload evaluation & deduction that is used to provide extremely more accurate information about which symbols could be accessed or typed in a particular code context
    • Obligatory things like definition lookup,
    • Code symbol reference highlighting,
    • Semantic type identifer highlighting,
    • Optional diff-based syntax highlighting,
    • Diet template file highlighting.
    • Mixin expression pre-compilation to see what a mixin will look like when being compiled
    • Automatically generating method stubs for overridable methods
      Mono-d method override.png
    • Code declaration foldings
    • User-generated foldings via
//region My Region
int myCodes;
//endregion
    • Obligatory AST outlining for easy access of stuff declared in a D source file
    • Intelligent code indentation
    • Basic code formatting support which reorganizes all kinds of code elements, not only line beginnings
    • Invoking a project's unit tests via pressing Ctrl+T
    • ...

How to install Mono-D

Install MonoDevelop

On Windows/OSX

  1. Go to http://monodevelop.com/download, download & install the latest MonoDevelop setup. Note that there's a gtk# package required to be installed as well.
  2. Open XS. Open the Help menu (Windows) or the Xamarin Studio menu (OSX) and select 'Check for updates'.
  3. Select the Alpha channel to be used for searching updates.
    Generally it's recommended to stick to the latest 'Alpha' version of XS because only then, you'll get the very latest & most recent changes & bug fixes.

On Linux

  1. Check your distro's software manager for any recent MonoDevelop version >v5.0 and try to install that one.
    MD >=5.0 is mandatory due to massive API changes etc.!
  2. If no proper build hasn't been uploaded, go to http://simendsjo.me/files/abothe and download the .xz matching your OS architecture.
  3. Follow the instructions given in the readme.txt in order to deploy everything properly.
    The archives are maintained by me, so please check the site regularly (like 1-2 times per month) for updates!

Install Mono-D

  1. Make sure you've got dmd, optionally dub installed
    Either via downloading the zip distributables or your linux distro's package manager
  2. Launch MD
  3. Click on the Tools (Windows)/Xamarin Studio (OSX) => Addin manager menu
  4. In the Gallery tab, hit the Refresh-button
  5. If there's an exception that some .mrep files could not be found,
    1. Open the repository drop-down menu
    2. click the Manage Repositories entry
    3. Add http://addins.monodevelop.com/Stable/Win32/5.0 (or, if it still fails: http://mono-d.alexanderbothe.com/repo)
  6. In the Language Bindings group, install the D Language Binding

Note: Before installing any new version of Mono-D on Windows, make sure you never opened any D project since the last start of XS or MD.
Otherwise, you'll get some installation errors etc which are caused by the fact that dlls cannot be overwritten once being loaded.

Setup Mono-D

There are further steps required to set up Mono-D properly:

  1. Open Tools => Options
    You'll find all D-related options in the Environment => D tree item.
  2. If the dmd executable cannot be found via $PATH or %PATH, adjust the compiler's bin path in the Compiler Toolchains settings to the absolute path.
    This also counts for OSX-Installations where XS is somehow not able to pass /usr/local/bin as default PATH entry..so just set the bin path over there as well!
  3. Do the same for dub or the Win32 ResourceCompiler.zip.
  4. In order to get the code completion running for phobos etc., activate the Includes tab in your compiler's settings and add the following lines (which you may fit to your machine's setup, of course)
    D:\Programs\D\dmd2\src\druntime\import
    D:\Programs\D\dmd2\src\phobos
    on Windows or the other respective paths for Linux:
    /usr/sha/include/dlang or
    /usr/include/dmd
    or for OSX:
    /usr/share/dmd/src
    You can of course add custom globally used libraries as well.
    Note that it's not sufficient to just reference the ...\dmd2\src\-path alone -- the \druntime\src\-folder will cause trouble otherwise!

Release Notes

See Mono-D Release Notes

Feedback

Support

If you like Mono-D you may support Alex for letting Mono-D become even better :-)

Tutorials

Build D Projects outside MonoDevelop

You still need a working MonoDevelop and Mono-D installation in order to proceed with the following step!

Just execute

mdtool build MyDSln.sln

to get e.g. a D project/solution built with Mono-D's facilities.

Note: You'll first off need to find mdtool in your XamarinStudio/MonoDevelop installation. On Linux, this command may look like

/opt/mono/bin/mdtool build MyDSln.sln

On Windows, this may looks like

"C:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe" build MyDSln.sln

If you only have one .sln existing in a directory, just invoking mdtool inside that directory is also sufficient!