Difference between revisions of "Mono-D"

From D Wiki
Jump to: navigation, search
m
Line 28: Line 28:
 
** Mixin expression pre-compilation to see what a mixin will look like when being compiled
 
** Mixin expression pre-compilation to see what a mixin will look like when being compiled
 
** Code declaration foldings
 
** Code declaration foldings
** User-generated foldings via <pre>
+
** User-generated foldings via
//region My Region
+
<syntaxhighlight lang="d">//region My Region
 
int myCodes;
 
int myCodes;
//endregion</pre>
+
//endregion
 +
</syntaxhighlight>
 
** Obligatory <tt title="Abstract Syntax Tree">AST</tt> outlining <small>for easy access of stuff declared in a D source file</small>
 
** Obligatory <tt title="Abstract Syntax Tree">AST</tt> outlining <small>for easy access of stuff declared in a D source file</small>
 
** Intelligent code indentation
 
** Intelligent code indentation

Revision as of 11:41, 11 July 2014

Mono-D is an Addin for XamarinStudio/MonoDevelop that brings D support to those IDEs.

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 dub.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.
    • Read-only opening dub.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
    • 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
    • ...