On Thursday, 17 January 2013 at 16:25:11 UTC, Era Scarecrow wrote:
On Thu, Jan 17, 2013 at 08:26:16AM +0100, Era Scarecrow wrote:
Somehow what seems like would work good is a card-file
system. Assuming the order of functions/declarations don't
matter and you let the editor deal with where it places
things (say, alphabetically or by attributes like private,
pure, etc), then having a partial 3d view where you can flip
through various function definitions & header documentation,
then open only the function(s) of interest in question,
hiding anything unrelated. If there's anything global or
variables it accesses those could be listed too along with
their type, and perhaps where the type's definition comes
from for reference; and any functions it calls along with
others with the same overloading name.
[...]
That sounds like a very good idea. In fact, Vim has a feature
called folding, where parts of the file are folded into a
single line, to be expanded/collapsed at will. Properly
configured, this can be made to auto-collapse all functions,
nested blocks, etc., to be expanded at will. This makes long
source code much more navigable (though it doesn't change
sorting order -- I can see where that may be useful).
NotePad++ does this too. However you are still managing the
order of the functions, obviously in structs the order of
variables matter (but not anywhere else), so if the editor
handled where it was placed you'd always have a consistant
layout. This likely would help quite a bit with managing source
code.
Course alphabetical could be a default after any other
specialized functions are done. Examples are I'd want
front/popFront next to eachother in the list, back/popBack,
length, opIndex, opIndexAssign, all the slices together along
with opDollar. Etc. Probably also have them in in multiple
fold-outs where it's sorted by some criteria (unittests, public
API, templates, pure/@safe).
Could also have different operators and function predefined
(but in grey for example), then enabling it gives you a default
basic skeleton in which to add your operator specific code.
All of this is what you could do without actually needing the
compiler (but probably needs proper syntax checking).
Ditto with SciTE (which uses the same editing component,
Scintilla, as Notepad++)