[MonoDevelop] syntax definition of "addin.xml"
Michael Hutchinson
m.j.hutchinson at gmail.com
Thu Jan 28 21:59:52 EST 2010
On Thu, Jan 28, 2010 at 9:16 PM, Vasili I. Galchin <vigalchin at gmail.com> wrote:
> Besides LanguageBinding what do you suggest for this "very small set"?
I'll list them in the context of some of the steps I gave.
>> 1) stub out the addin
Create project and addin manifest with header, dependencies, etc.
>> 2) file type definitions
Define mimetypes for new file types using /MonoDevelop/Core/MimeTypes
Register any icons you need using /MonoDevelop/Core/StockIcons
Define file filters for "open" dialog using /MonoDevelop/Ide/FileFilters
>> 3) IDotNetLanguageBinding for project & compilation support
Register project extension, MSBuild imports and type GUID using
/MonoDevelop/ProjectModel/MSBuildItemTypes
Implement IDotNetLanguageBinding and register at
/MonoDevelop/ProjectModel/LanguageBindings, and implement the
IDotNetLanguageBinding
Register parameters/configuration settings classes used by your
language binding at /MonoDevelop/ProjectModel/SerializableClasses
>> 4) file & project templates
Write file and project templates and register at
/MonoDevelop/Ide/FileTemplates
/MonoDevelop/Ide/ProjectTemplates
**** At this point you should be able to create/save/load/compile/run
projects for your language, so I would call this the minimum set. ****
Past this, a few more hints:
>> 5) option panels for setting language-specific project options
Implement options panels for editing your settings classes and
register at /MonoDevelop/ProjectModel/Gui/ItemOptionPanels
>> 6) a syntax highlighting definition
Write a syntax definition for your source files' mimetypes and
register at /MonoDevelop/SourceEditor2/SyntaxModes
>> 8) a parser, to provide outlining, folding, class list, quick finder,
>> and fill the database that code completion uses
Implement parser and register at /MonoDevelop/ProjectModel/DomParser
Implement an ambience class and register at /MonoDevelop/ProjectModel/Ambiences
At this point you'll have a working document outline, quick finder,
class view, go-to-type, and C# projects that reference yours will have
code completion.
>> 9) a text editor extension subclassing CompletionTextEditorExtension,
>> to provide code completion and smart indentation etc.
Implement CompletionTextEditorExtension subclass and register at
/MonoDevelop/Ide/TextEditorExtensions.
--
Michael Hutchinson
http://mjhutchinson.com
More information about the Monodevelop-list
mailing list