November 14, 2004
"James Dunne" <jdunne4@bradley.edu> wrote in message news:cmsme7$1813$1@digitaldaemon.com...
> That does it.
>
> I'm making an IDE for D.
>
> [...]
> Please attach your feature requests below.

Please include drag and drop code editing such as that in MS Visual Studio. You select a chunk of code, place your mouse pointer anywhere on the selection, and start dragging. An insertion point follows the mouse pointer as you drag, and when you release the mouse button, the selected text is moved, meaning inserted at that point and deleted from its original location.

It's also smart enough to avoid concatenating two separate lines of code or breaking one into two as you move code around, so a couple of quick hand motions is usually all you need to move code around. There is rarely any need to slow down and make sure you select just the right parts, re-separate lines after inserting, etc. Quick, easy, and accurate without distracting you from thinking about the logic of the code itself.

I used to have the common programmer's aversion to mouse techniques when text editing because having to unseat my hand from its home position to fish around for a mouse, then reseat my hand, often going back and forth, is such a nuisance.

Then I had to borrow an IBM laptop for a while and was forced to use the little TrackPoint eraserhead pointing device in the middle of the keyboard. For a few days it was much more awkward than a regular mouse, but after I got good at it I noticed that using the mouse had turned into keyboarding. I was essentially typing and mousing simultaneously. Now this is available from many different hardware makers.

Then, with the drag and drop editing ability of Visual Studio's editor, I was able to type and push chunks of code around faster than I ever did with either vim or emacs keyboard commands (in most cases), but without any (apparent) need to remember anything. One general technique (drag to select, then drag and drop the selection) replaces the dozen or two dozen special-case techniques, each with its own key sequence (vim) or key chord (emacs), and each with its own rules.

This is made even easier by a feature that lets you select a whole line by clicking the margin to the left of the line. Since most code moving is done in whole lines, this left margin selection feature lets you just drag your mouse down the left side of the code you want, then drag and drop those lines of code. Please include this left-margin selection feature, too, if you can.

But then, of course, I missed some keyboard things such as quick searching (think vi's / followed by n-n-n-n...), and most people still think mousing requires taking your hands off the keyboard, so having both keyboard and mouse techniques seems best.



November 15, 2004
Thanks for your input, and yes I agree 100% with you on the validity and usefulness of your suggestion.  What good is an IDE if it doesn't improve productivity?  The left-margin feature is one I love as well, but often forget it exists since I use it so commonly (just subconcsiously now I guess, lol). Yes, I can do this and design for it early on once I get the D boilerplate editor code done.

In article <cn8pea$3k7$1@digitaldaemon.com>, Glen Perkins says...
>
>
>"James Dunne" <jdunne4@bradley.edu> wrote in message news:cmsme7$1813$1@digitaldaemon.com...
>> That does it.
>>
>> I'm making an IDE for D.
>>
>> [...]
>> Please attach your feature requests below.
>
>Please include drag and drop code editing such as that in MS Visual Studio. You select a chunk of code, place your mouse pointer anywhere on the selection, and start dragging. An insertion point follows the mouse pointer as you drag, and when you release the mouse button, the selected text is moved, meaning inserted at that point and deleted from its original location.
>
>It's also smart enough to avoid concatenating two separate lines of code or breaking one into two as you move code around, so a couple of quick hand motions is usually all you need to move code around. There is rarely any need to slow down and make sure you select just the right parts, re-separate lines after inserting, etc. Quick, easy, and accurate without distracting you from thinking about the logic of the code itself.
>
>I used to have the common programmer's aversion to mouse techniques when text editing because having to unseat my hand from its home position to fish around for a mouse, then reseat my hand, often going back and forth, is such a nuisance.
>
>Then I had to borrow an IBM laptop for a while and was forced to use the little TrackPoint eraserhead pointing device in the middle of the keyboard. For a few days it was much more awkward than a regular mouse, but after I got good at it I noticed that using the mouse had turned into keyboarding. I was essentially typing and mousing simultaneously. Now this is available from many different hardware makers.
>
>Then, with the drag and drop editing ability of Visual Studio's editor, I was able to type and push chunks of code around faster than I ever did with either vim or emacs keyboard commands (in most cases), but without any (apparent) need to remember anything. One general technique (drag to select, then drag and drop the selection) replaces the dozen or two dozen special-case techniques, each with its own key sequence (vim) or key chord (emacs), and each with its own rules.
>
>This is made even easier by a feature that lets you select a whole line by clicking the margin to the left of the line. Since most code moving is done in whole lines, this left margin selection feature lets you just drag your mouse down the left side of the code you want, then drag and drop those lines of code. Please include this left-margin selection feature, too, if you can.
>
>But then, of course, I missed some keyboard things such as quick searching (think vi's / followed by n-n-n-n...), and most people still think mousing requires taking your hands off the keyboard, so having both keyboard and mouse techniques seems best.
>
>
>

Regards,
James Dunne
November 15, 2004
My hatred for C++ is mostly syntactically based, I guess.  Just looking at the code makes me twinge.  Also the hack on top of hack on top of hack that the design is just sickens me.  Who'd have thought that (ClassName::*) would be a delegate function?  And what is with the virtual myfunc(int somearg) = 0; that denotes a pure-virtual function which renders a class abstract?  Just all the caveats and rules to remember leaves me running back to my C++ spec books and class notes just to remember how to code right.

Also, C++ bothers me since it looks like a big hack with C code and C tricks buried in it.  It also has performance issues due to the fact that it has to support features that only 1% of the code will actually utilize (multiple inheritance, polymorphism, etc).

I like the Java/C# approach where mostly everything is explicitly stated by keywords.  D seems to follow this approach, and I enjoy it.  I don't like to use C# and Java since their bindings to native C code are a nightmare, and also since I don't like the idea of interpreted bytecode.  When I code, I want to know I have at least nearly the full power of the machine at my fingertips.  The argument of "processors are getting faster, so we can be lazier" does NOT fly with me, obviously.

OTOH, I enjoy C very much because it does what it says it does, and nothing more.  I like that I have full control over what I want to do and the details of implementation aren't hidden from me.  I also like that it is simple enough to use and everything is well-defined and standardized.  How many C++ compilers actually implement all the standard features correctly?

Anyways, I'll be developing with D to make this IDE now, contrary to my previous post.  This way the code will LOOK nice, and will perform much better.

In article <cn2ehf$bv0$1@digitaldaemon.com>, Ilya Minkov says...
>
>James Dunne schrieb:
>> I'd be mostly interested in developing with C, since I find that D doesn't have much of an automatic build processing tool, and I absolutely hate C++.
>
>DMD compiler is so fast in non-release, non-optimized mode, that you probably just want to make a very small, simple shell script which compiles all the reqiered files with one command to DMD. It only takes a couple of seconds on a semi-modern machine with an order of magnitude of 100kLoc project. So don't let the lack of a build system turn you off from D. Finally, if you are writing developer tools anyway, you could write/improve a build tool yourself, couldn't you? :)
>
>I wonder how C++ provokes that much hate in you, as opposed to C? I happen to dislike C a lot, but C++ adds so much more (possible) safety and flexibility that C++ is in fact quite usable. Besides - C++ is a superset of C minus a few things one wouldn't like to do anyway, so what keeps you from limiting yourself to a subset of C++ and using it, like everyone is doing anyway? I am just curious to know what you dislike about C++.
>
>-eye

Regards,
James Dunne
November 15, 2004
Oh yes, old skool IDEs from Borland in DOS?  Ahh those were the days.  I think it was called TurboVision.  Jaap's curses library should help very much with implementing something like it, but not exactly of course.  Yes, intellisense will be provided by a drop-down listbox below your current code line.  I've thought about it, and that could be too intrusive and annoying at times, so possibly also a side-bar list.  Or even a tab-completion type implementation. So many possibilities there in a CUI!

In article <cn2nnd$p46$1@digitaldaemon.com>, Joey Peters says...
>
>In article <cn1ui6$2npq$1@digitaldaemon.com>, James Dunne says...
>>It's also a
>matter of language-parsing to get intellisense data, and deciding on
>>a decent
>build system to use for D programs, for which I think GNU Make will
>>suffice.
>The build system is subject to change, however, once I discover a
>>decent
>alternative.
> 
>In case you need a parser, andy wrote a grammer file for D in
>ANTLR (generates
>C++/Java/C#/Python code). I don't know where it is right now
>but I can ask him
>if you need it.
> 
>Intellisense, that would be somewhat weird
>with the templates and mixins, but I
>guess that makes up for the simplicity of
>a d parser (versus c++). It would be
>rock if it looked like those old PASCAL
>ides but then with intellisense, hah.
>Man, still remember them from school.
>
>

Regards,
James Dunne
1 2 3
Next ›   Last »