[MonoDevelop] Scintilla over GtkSourceView

Mike Krueger mike@icsharpcode.net
Thu, 29 Jan 2004 09:31:05 +0100


>I agree with you that every external editor is a story for itself, and
>that making a good general wrap could be heavily discouraged and
>But I've some concerns about what you say by proposing only one existing
>"editor" (sourceview or scintilla) and arguing that the IDE and the
>editor must be heavily customizable, while you said #D has the same
>philosophy as eclipse by allowing more editors to be used in the right
>context, so not only one editor.
>And if you only choose one editor and you go tied to it then you have to
>take care of portability (if you want it)
And again an 'editor' in eclipse model is NOT a text editor.
It is something we call a 'view'. It is a window which pops up when you 
open a file (in the middle
area of the IDE). This can be a text editor or an assembly browser, html 
editor, xml editor etc.
Even eclipse has only ONE text editor.

Add-Ins should be able to CHANGE the text editor behaviour or drawing by 
adding commands or
'painters' how do you do this without knowing which text editor you use 
inside the IDE ?
If you are able to use more than one how do you solve the problem:
- That custom drawings look 'right' in each of these editors
- That adding commands is possilbe (maybe the key combo is used in this 

... a language binding for #D currently is generally:
+ A syntax highlighting file ---> The editor should use this ... good 
luck with wrapping 'syntax highlighting'
    definitions to more than one text editor.
+ Compiler (with project support)/parser/resolver and maybe an ambience 
for the IDE
+ Panels for the project configuration
+ It brings a Folding strategy ---> That is a class which creates 
folding markers a tree structure (not only
   as 'fold levels' for lines which most editors seem to use.
+ A custom smart indenter (yes this should be configurable too)

Now think some time in the future and there may be many more extension 
points inside the editor currently there a three.
It is not only easier to use one text editor it is a must if you want 
extensibility. Using more than one text editor hasn't
to do something with 'customization' more with 'adding uneccessary 
complexity to the code, annoy the user and killing
future extensions'.
I haven't got good answers to my questions yet I only want to help the 
project with my experience in IDE programming.
Thats why I propose following extension points for an editor:

+ Editor commands
+ Smart indenting and source code beautifier
+ Folding
+ Drawing (margins and 'line' drawing)

That is what the wrapper for GtkSourceView should allow ... if it can't 
I suggest using another approach because using now
GtkSourceView and another editor in the future is double (maybe more) 
work. I don't know what you think but maybe a text
editor written in C# is easier accessible in C# than a wrapped text 
editor in C.