[Mono-osx] Xcode plugin for C#/mono

Andreas Färber andreas.faerber at web.de
Sun Nov 19 15:06:13 EST 2006


Hi,

Am 19.11.2006 um 17:50 schrieb Miguel de Icaza:

> Hello Susan,
>
>> Attached are the other files - basically the source files and  
>> Xcode project
>> file in case anyone wants to build the thing from scratch.
>>
>> If you combine the files in this zip file with those previously  
>> sent, then
>> you will have the complete set.
>
> This works like a charm.
>
> Do you think:
>
> 	* It would be possible to distribute this with the Mono
> 	  installer, and have these files installed somewhere on
> 	  the system, so it becomes global for all users?
>
> 	* Would this work even if XCode is not installed when the
> 	  Mono installer is ran?
>
> 	* How could we build this code ourselves (we are not Mac
> 	  savvy, so we could use some help).
>
> 	* Would you mind developing/maintaining those on the Mono
> 	  SVN repository, so other people could help/assist with it?

This is a bad idea.

There is no public Xcode API and there have been major method  
signature changes between Xcode releases so a plugin written for  
Xcode 2.4 might crash on 2.3 or 2.2 etc. So please don't install any  
Xcode plugins as part of Mono.

Especially native Objective-C code is subject to such  
incompatibilities because the class sizes etc. are determined at  
compile-time.

My approach of using a Cocoa#-like library and managed code within  
the plugin (as proposed on the list) avoids these problems by  
determining things at runtime - but I can't recommend that as an  
official plugin either as it's not based on Mono's Cocoa# in its  
current state.

Maybe someone else has looked into AppleScript? That is the only  
official way of writing Xcode plugins but I haven't played with it yet.

A place within SVN for all the *spec files (language definitions  
etc.) would be good as a start, though of course parts thereof will  
depend on the specific plugin implementation.

Anyway, let's keep in mind that an implementation should keep file  
types and products neutral and be as compatible as possible - tying  
everything to C#/mcs contradicts the "common language" part of CLI.
Apple's standard implementation transparently handles compilation of  
different language source files to one executable (similar to make)  
so a future official Mono Xcode plugin, with Mono being a common  
language infrastructure runtime, should be able to handle multiple  
source languages either itself or at least allow third-party  
implementations to add additional language support in a non- 
conflicting way.
In short that's: you specify input files and the desired output file  
and the plug-ins are supposed to figure out how to get from A to B  
automagically, with as many intermediate steps as necessary and  
without crashing.

Andreas


More information about the Mono-osx mailing list