January 02, 2009
Ary Borenszweig wrote:
> Jacob Carlborg Wrote:
> 
>> Ary Borenszweig wrote:
>>> Ary Borenszweig escribió:
>>>> Ary Borenszweig escribió:
>>>>> The Descent plugin for Eclipse provides an IDE for writing, launching and debugging code in D.
>>>> Thank you all for the feedback!
>>>>
>>>> I just uploaded a new release (0.5.3.20081230)...
>>> Ok, I promise this is the last one in this year.
>>>
>>> I just uploaded another release (0.5.3.20081231) which adds some kind of support for autocompletion, go-to-definition and semantic highlighting inside templates. It is far from perfect, but comparing this to nothing I think it's ok. This release also has an option to not insert completion proposals when a dot is typed (as was suggested by Jacob Carlborg).
>> Almost there. When pressing dot the second time the cursor is moved back one letter and ends up between the two dots instead of after the second dot.
> 
> Can you check this happens all the time? It happened to me in some cases, but I corrected them. I probably missed some others.

I have this example:

void main ()
{
	char[] str;
	char[] s = str[3.|]
}

"|" is the cursor, as usual. When I press dot here the cursor is moved back one letter or not moved forward and end up between the two dots like this:

void main ()
{
	char[] str;
	char[] s = str[3.|.]
}


/Jacob
January 03, 2009
Jacob Carlborg escribió:
> Ary Borenszweig wrote:
>> Jacob Carlborg Wrote:
>>
>>> Ary Borenszweig wrote:
>>>> Ary Borenszweig escribió:
>>>>> Ary Borenszweig escribió:
>>>>>> The Descent plugin for Eclipse provides an IDE for writing, launching and debugging code in D.
>>>>> Thank you all for the feedback!
>>>>>
>>>>> I just uploaded a new release (0.5.3.20081230)...
>>>> Ok, I promise this is the last one in this year.
>>>>
>>>> I just uploaded another release (0.5.3.20081231) which adds some kind of support for autocompletion, go-to-definition and semantic highlighting inside templates. It is far from perfect, but comparing this to nothing I think it's ok. This release also has an option to not insert completion proposals when a dot is typed (as was suggested by Jacob Carlborg).
>>> Almost there. When pressing dot the second time the cursor is moved back one letter and ends up between the two dots instead of after the second dot.
>>
>> Can you check this happens all the time? It happened to me in some cases, but I corrected them. I probably missed some others.
> 
> I have this example:
> 
> void main ()
> {
>     char[] str;
>     char[] s = str[3.|]
> }
> 
> "|" is the cursor, as usual. When I press dot here the cursor is moved back one letter or not moved forward and end up between the two dots like this:
> 
> void main ()
> {
>     char[] str;
>     char[] s = str[3.|.]
> }
> 
> 
> /Jacob

There, I've fixed it. Updating from the update manager will be enough. I've removed the nightly builds page because now it's easier for me just to upload new versions to the update site.
January 03, 2009
Ary Borenszweig Wrote:

> Jacob Carlborg escribió:
> > Ary Borenszweig wrote:
> >> Jacob Carlborg Wrote:
> >>
> >>> Ary Borenszweig wrote:
> >>>> Ary Borenszweig escribió:
> >>>>> Ary Borenszweig escribió:
> >>>>>> The Descent plugin for Eclipse provides an IDE for writing, launching and debugging code in D.
> >>>>> Thank you all for the feedback!
> >>>>>
> >>>>> I just uploaded a new release (0.5.3.20081230)...
> >>>> Ok, I promise this is the last one in this year.
> >>>>
> >>>> I just uploaded another release (0.5.3.20081231) which adds some kind of support for autocompletion, go-to-definition and semantic highlighting inside templates. It is far from perfect, but comparing this to nothing I think it's ok. This release also has an option to not insert completion proposals when a dot is typed (as was suggested by Jacob Carlborg).
> >>> Almost there. When pressing dot the second time the cursor is moved back one letter and ends up between the two dots instead of after the second dot.
> >>
> >> Can you check this happens all the time? It happened to me in some cases, but I corrected them. I probably missed some others.
> > 
> > I have this example:
> > 
> > void main ()
> > {
> >     char[] str;
> >     char[] s = str[3.|]
> > }
> > 
> > "|" is the cursor, as usual. When I press dot here the cursor is moved back one letter or not moved forward and end up between the two dots like this:
> > 
> > void main ()
> > {
> >     char[] str;
> >     char[] s = str[3.|.]
> > }
> > 
> > 
> > /Jacob
> 
> There, I've fixed it. Updating from the update manager will be enough. I've removed the nightly builds page because now it's easier for me just to upload new versions to the update site.

Thanks
January 20, 2009
Ary Borenszweig schrieb:
> And a question: what would you like to see next in Descent?
> 

#1: the "preprocessed"-source output discussed in the learn newsgroup!
("...output a copy of what the source files look like after things like mixins, CTFE and versions are applied? (Sort of like running a C compiler with a "preprocess-only" flag)...)

#2: parse command line output from dmd and jump to errors in the source file
January 20, 2009
Trass3r wrote:
> Ary Borenszweig schrieb:
>> And a question: what would you like to see next in Descent?
>>
> 
> #1: the "preprocessed"-source output discussed in the learn newsgroup!
> ("...output a copy of what the source files look like after things like mixins, CTFE and versions are applied? (Sort of like running a C compiler with a "preprocess-only" flag)...)

I think this point is pretty feasible. I can probably implement it as a view. The only "problem" is that if I do that, I'll also have to show the optimized version of the code (which might be very interesting). So if you have:

--
int foo(int x) {
  return 2 * x;
}

int bar() {
  return 3 * foo(4);
}
--

you might end up seeing in that view:

--

int foo(int x) {
  return 2 * x;
}

int bar() {
  return 24;
}
--

> 
> #2: parse command line output from dmd and jump to errors in the source file

Yeah... This seems like the favorite one.
January 20, 2009
Ary Borenszweig schrieb:
> I think this point is pretty feasible. I can probably implement it as a view. The only "problem" is that if I do that, I'll also have to show the optimized version of the code (which might be very interesting). So if you have:

Hey good idea, would be interesting to see what stuff gets optimized, inlined and stuff! :)
January 20, 2009
Trass3r wrote:
> Ary Borenszweig schrieb:
>> I think this point is pretty feasible. I can probably implement it as a view. The only "problem" is that if I do that, I'll also have to show the optimized version of the code (which might be very interesting). So if you have:
> 
> Hey good idea, would be interesting to see what stuff gets optimized, inlined and stuff! :)

Well, now I'm not sure about this... I've just played around with this. If you give DMD's front end this:

---
module main;

class Foo {
	
}

int main(char[][] args) {
	scope(exit) { char[] x = "exit"; }
	scope(failure) { char[] x = "failure"; }
	scope(success) { char[] x = "success"; }
	Foo foo = new Foo();
	return 0;
}
---

it transforms it to this:

---
module main;
import object;
class Foo : Object {
}
int main(char[][] args) {
	try {
		try {
			int __osf15 = 0;
			try
				try {
					Foo foo = new Foo;
					return 0;
				} catch(Object __o2) {
					__osf15 = 1;
					throw __o2;
				}
			finally
				if(!__osf15)
					char[] x = "success";
		} catch(Object __o1) {
			char[] x = "failure";
			throw __o1;
		}
	} finally
		char[] x = "exit";
}
---

I'm not sure you want to see that, heh. I think I'll stick with the "hover over a symbol to see it's compile-time representation" solution...
January 20, 2009
> I'm not sure you want to see that, heh. I think I'll stick with the "hover over a symbol to see it's compile-time representation" solution...

Cool, didn't know scope was just syntactic sugar for such a construct.
Well the question is what the output looks like for a test scenario that is more practical, such as mixins and stuff.
January 20, 2009
btw how do you get these information? Do you directly use the dmd frontend source code?
January 20, 2009
Trass3r wrote:
> btw how do you get these information? Do you directly use the dmd frontend source code?

Descent has a port of DMD's frontend code to Java. It also implements the visitor pattern in the provided AST, so it can output it as text.