Meditor: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Osiris (Diskussion | Beiträge) |
Osiris (Diskussion | Beiträge) |
||
Zeile 31: | Zeile 31: | ||
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabPartitionScanner</span> |
|- at.tugraz.itp.mltutor.meditor.editors.<span style="color:#00CC44">MatlabPartitionScanner</span> |
||
− | Der Partitioner |
+ | Der Partitioner ist<tt>FastPartitioner</tt> (war vorher der deprecated <tt>DefaultPartitioner</tt>) |
+ | |||
+ | ==Weitere Schritte== |
||
+ | |||
+ | ===Partitionierung=== |
||
+ | * Schön wäre es, wenn auch Regular Expressions für die Partitionierung verwendet werden könnten. Damit könnten z.B. Variablen erkannt werden, weiters ist es besonders praktisch, dass die RegEx bereits entwickelt sind. |
||
+ | ** Leider gibt es als Futter für den <tt>RuleBasedScanner</tt> nur die Klassen: |
||
+ | **# <tt>NumberRule</tt> |
||
+ | **# <tt>PatternRule</tt>, davon abgeleitet: |
||
+ | **#* <tt>MultiLineRule</tt> |
||
+ | **#* <tt>SingleLineRule</tt> |
||
+ | **# <tt>WhitespaceRule</tt> |
||
+ | **# <tt>WordRule</tt> |
||
+ | **Idee: Eine Klasse für RegEx schreiben, die <tt>IRule</tt> oder <tt>IPredicateRule</tt> implementiert. |
||
Version vom 13. November 2005, 15:39 Uhr
Inhaltsverzeichnis
Ziel
Ein professioneller Editor für Matlab
Features:
- Syntax-Highlighting
- Automatische Einrückung
- Matching Brackets
- Templates?
Vorhandene Strukturen
In grün Geschriebenes sind die selbst entwickelten Klassen.
Editor
... |- org.eclipse.ui.texteditor.AbstractTextEditor |- org.eclipse.ui.texteditor.StatusTextEditor |- org.eclipse.ui.texteditor.AbstractDecoratedTextEditor |- org.eclipse.ui.editors.text.TextEditor |- at.tugraz.itp.mltutor.meditor.editors.MatlabEditProjection |- at.tugraz.itp.mltutor.meditor.editors.MatlabEditor
Partitionierung des Dokuments
PartitionScanner ist MatlabPartitionScanner.
java.lang.Object
|- org.eclipse.jface.text.rules.RuleBasedScanner
|- org.eclipse.jface.text.rules.BufferedRuleBasedScanner
|- org.eclipse.jface.text.rules.RuleBasedPartitionScanner
|- at.tugraz.itp.mltutor.meditor.editors.MatlabPartitionScanner
Der Partitioner istFastPartitioner (war vorher der deprecated DefaultPartitioner)
Weitere Schritte
Partitionierung
- Schön wäre es, wenn auch Regular Expressions für die Partitionierung verwendet werden könnten. Damit könnten z.B. Variablen erkannt werden, weiters ist es besonders praktisch, dass die RegEx bereits entwickelt sind.
- Leider gibt es als Futter für den RuleBasedScanner nur die Klassen:
- NumberRule
- PatternRule, davon abgeleitet:
- MultiLineRule
- SingleLineRule
- WhitespaceRule
- WordRule
- Idee: Eine Klasse für RegEx schreiben, die IRule oder IPredicateRule implementiert.
- Leider gibt es als Futter für den RuleBasedScanner nur die Klassen:
Diverses
Anmerkungen zur Entwicklung
Folgende Plugins werden vom Meditor-Plugin benötigt (einzutragen bei Dependencies)
- org.eclipse.ui
- org.eclipse.core.runtime
- org.eclipse.ui.workbench.texteditor
- org.eclipse.jface.text
- org.eclipse.ui.editors
- org.eclipse.core.resources
- org.eclipse.ui.ide
- org.eclipse.ui.views
- org.eclipse.jdt.ui
Erstellen eines eigenen Editors (nur Anmerkungen)
- Klasse von AbstractTextEditor ableiten
- Klasse von SourceViewerConfiguration ableiten
Dies ist der Ausgangspunkt für das Hinzufügen von eigenen Funktionalitäten - Einen DocumentProvider erweitern um ein IDocument Objekt, welches die Datenrepräsentation darstellt, zu erhalten. Dies ist auch der Ausgangspunkt für Notifacations.
- Actions werden in der Funktion createActions() (Memberfunktion des erzeugten Editors) hinzugefügt.