Descent 0.5 released

Ary Borenszweig ary at esperanto.org.ar
Sun Feb 3 20:19:40 PST 2008


The Descent plugin for Eclipse provides an IDE for writing, launching 
and debugging code in D.

Explanations on how to get it from within Eclipse are here:

http://www.dsource.org/projects/descent

The new features for this release are:
  - Full autocompletion, which also writes the imports for you. No need 
to remember where that class or function you are looking for is located. 
Just start writing the name of it, press ctrl+space, select the 
suggestion, and the import is added at the top of the module 
automatically (no need to critic Tango anymore :-P). External variables 
does not participate in import-adding, because there are *so* many 
public ones...
  - Go to definition. It even works for opCall and magic array 
functions. :-)
  - Semantic highlighting: you can choose to color aliases, typdefs, 
classes, structs, interfaces, unions, templates, local variables, 
functions and function calls, etc., with different colors.
  - Showing of semantic errors. By default, some semantic errors are 
shown, like undefined identifiers or unresolved types. You can turn this 
off, or you can enable full semantic error reporting (but it will 
probably lie in some cases, that's why the default is "some"). It is 
recommended to turn this off for existing big projects, as it may cause 
more trouble than help.
  - Compile-time evaluation of functions and other properties: hovering 
over an element while holding ctrl+shift shows it's compile-time value. 
You can use this for built-in properties like init, min, max, sizeof, 
alignof, stringof, mangleof, length, constants, enum values and function 
calls (try writing a factorial function, then invoke it with a constant 
value somewhere in the code, and ctrl+shift+hover over the call). If the 
result of the evaluation is a string, and it is likely a declaration, it 
will have syntax highlighting and will be formatted according to your 
formatter preferences. This is useful for seeing the string passed to a 
mixin.
  - Graying out of inactive code: shows in gray code that is not 
reachable because of debug or version levels/identifiers and static ifs 
that evaluate to false.
  - Improved occurrences finder: selecting a token highlights all other 
tokens with the same semantic meaning. Then, pressing ctrl+2, r, allows 
you to rename all those occurrences. Very useful for renaming local 
variables, functions and types.
  - Declaration view: shows the source of the element under the cursor.

For current users: after you update the plugin, go to Windows -> 
Preferences, D -> Compiler, and change any setting. It will ask you to 
rebuild everything. You'll need to do this since I've changed the format 
of the indexes for searching stuff. Otherwise you'll get errors, or some 
things won't work.

And now, my personal comments about the current specification of D about 
developing an IDE for it:
  - Difficulty to suggest autocompletion for getters, and in particular 
setters. There's nothing in the language that says "this function is 
meant to be used as a setter". So currently, if you autocomplete a 
method that looks like a setter, you will get something like this: 
"var.member = |foo|", where you can start overwriting |foo|. While 
testing Descent, I found more setters that "procedures", and thus this 
decision.
  - Public imports are bad, bad, anyway you see it: they polute the 
global namespace, they make compilation slower (and also an IDE slower), 
they make finding the definition of a symbol harder (well, if you don't 
use an IDE). So if you use import foo.all, forget about getting good 
performance in Descent. Anyway, you won't need to use that, because 
Descent writes the imports for you.

Finally, as always with such an ambitious project, we need help! We're 
looking for testers, documentation writers, translators, and most of all 
developers. If you're interested in helping out, check out this page, 
which summarizes what we're looking for:

http://www.dsource.org/projects/descent/wiki/Development

Any suggestion, critic or bug report is welcome. You can use:
- the forums: http://www.dsource.org/forums/viewforum.php?f=107
- trac: http://www.dsource.org/projects/descent/report?action=new


More information about the Digitalmars-d-announce mailing list