[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-dev] Cross-platform IDE things: "Document" as the home of IDE awareness



This is interesting, but it seems to me that there may well be IDE related stuff that doesn't really have anything to do with Document. An IDE class or something like that might be more appropriate in that case.

I think we need to sit down and have a detailed look at what functionality belongs to Platform, to IDEs, and what might be shared, and then come up with a strategy which creates the fewest foreseeable maintenance hassles. I think Ron suggested doing this at the Symposium?

A related issue is the question of to what extent we can or should take every available Platform + IDE combination into account when making development decisions. Currently we tend to think of SC.app, scel, and PsyCollider, and not really worry about anything else. That may be the pragmatic choice in the current context, but that may change as time goes on. Worth considering...

S.

On 26 Dec 2008, at 13:06, Dan Stowell wrote:

Hi -

There's been some discussion about cross-platform-ness. Specifically,
the primary home for crossplatform awareness is the Platform class
(osx/windows/linux) but there's been some concern because now the
choice of IDE (cocoa/emacs/vim/eclipse/psyco) is more and more
independent of platform choice. Someone suggested we should create a
new "IDE" class or some such, to encapsulate this knowledge.

I just noticed that Document already is the home of IDE awareness.
Document.implementationClass tells us if we're using CocoaDocument or
ScelDocument. I've added a rudimentary PsycolliderDocument class. We
could create an EclipseDocument class and a VimDocument class
(eventually, these classes will do useful things).

So we could make the Document class do similar things as the Platform
class, e.g. the rather nice Platform:case functionality. At its most
basic this would look like...

	*case { | ... cases |
		^implementationClass.name.switch(*cases)
	}

...and would give us a syntax like...

Document.case(
   \CocoaDocument, { "I like SuperCollider.app best".postln },
   \ScelDocument, { "I like emacs best".postln }
);

...but that syntax is a little graceless, so maybe better would be to
add a class variable "ide" to each Document subclass with a nicer
value such as \cocoa, \emacs, \psycollider, \eclipse. The syntax would
look more like

Document.case(
   \cocoa, { "I like SuperCollider.app best".postln },
   \emacs, { "I like emacs best".postln },
   \eclipse, { "Real coders use eclipse".postln }
);

There are a couple of things in the class library that already need to
account for choice of IDE. This would streamline that business IMHO.

I propose to commit this added functionality to Document and subclasses. Let me know if there's something I haven't accounted for... (I bet there is...)

Dan
--
http://www.mcld.co.uk

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/


_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/