Exceptional coding style
Mehrdad
wfunction at hotmail.com
Thu Jan 17 11:43:02 PST 2013
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++)
More information about the Digitalmars-d
mailing list