Fragen zum SyntaxHighlighting (DefaultStyledDocument)

Status
Nicht offen für weitere Antworten.

JasonV

Aktives Mitglied
Moin :)

Also, ich programmiere an einem Editor (wie könnte es anders sein - ist ja eines der häufigsten Projekte) mit Syntax-Highlighting, um ihn an meine Bedürfnisse anpassen zu können und einen Overload wie bei Eclipse / NetBeans IDE zu vermeiden.

Mein Ziel ist in erster Linie Unterstützung für die JAVA- und die PHP-Syntax. Im Forum habe ich einen Link auf http://www.discoverteenergy.com/files/SyntaxDocument.java gefunden und mir die Klasse mal geborgt :)

Der Editor selbst läuft soweit bisher mit Java-Syntax-Highlighting in einem JEditorPane.

Nun habe ich aber ein paar kleine Fragen:

1) Die Klasse besitzt nun JAVA-Keywords. Es wäre natürlich einfach, den Konstruktor mit dem ContentType aufzurufen und dementsprechend die Keywords einzubinden. Da ich aber eventuell auch noch andere Sprachen berücksichtige möchte (auch wenn es momentan nicht geplant ist) suche ich eine saubere Möglichkeit, die Sprachen/den ContentType von ausserhalb ändern zu können. Sprich, wenn ich mal C#-Syntax einbinden möchte, erstelle ich eine Datei mit den Hinweisen zum Umgang (Keywords, Quotes etc.) - da ich auch verschiedene Farben nutzen möchte, sollen diese ebenfalls parametrisiert werden können.
Da habe ich mir zur Lösung so meine Gedanken gemacht:
- für jede Sprache eine eigene Klasse?
- ein eigenes Format zur Beschreibung?
- oder ist XML ein adäquates Mittel?


2) Wie kann ich, nachdem ich (ich habe die Original-Methode addMatchingBrace abgeändert) einen Klammern-Block eingefügt habe den Cursor in die Mitte setzen? Ich habe da ja einzeilige Klammern () + [] und mehrzeilige { .. }. Öffne ich eine Klammer, fügt er automatisch den gegenüberliegenden Part ein. Hier mal der Code:
Code:
protected String addMatchingBrace(int offset, String brace) throws BadLocationException {
		String retStr = "";
		
		if(brace.equals("{")) {
			StringBuffer whiteSpace = new StringBuffer();
			int line = rootElement.getElementIndex(offset);
			int i = rootElement.getElement(line).getStartOffset();

			while (true) {
				String temp = doc.getText(i, 1);

				if (temp.equals(" ") || temp.equals("\t")) {
					whiteSpace.append(temp);
					i++;
				} else
					break;
			}
			retStr = "{\n" + whiteSpace.toString() + "\t\n" + whiteSpace.toString() + "}";
		}			
		else if(brace.equals("("))
			retStr = "()";
		else if(brace.equals("["))
			retStr = "[]";
			
		return retStr;
	}
Nun würde ich gerne den Cursor versetzen können, so dass ich direkt weiterarbeite.


3) Bietet sich das DefaultStyledDocument überhaupt an - oder sollte man SyntaxHighlighting doch über Scanner realisieren?

4) Ist es möglich, den Default-\t-Wert für einen Tabulator zu ändern? Mit 10 Zeichen ist es doch recht viel.

5) Wenn ein Tabulator eingefügt wurde und ich space 10 Stellen nach vorne komme ich nicht exakt unter dem Start der Tab-Zeile aus. Woran liegt das? Als Font habe ich
Code:
DEFAULT_FONT = new Font("monospaced", Font.PLAIN, 14);

6) Wenn ich eine Datei lade, haben die Zeilenhöhen nicht die Höhe, die size=14 ergibt. Somit passt leider die Zeilennummerierung nicht mehr. Kann man die Zeilenhöhe festlegen? Oder gibt es da einen anderen Trick?


Über Hinweise würde ich mich sehr freuen :)

Beste Grüße aus dem Ruhrpott,
JasonV
 

JasonV

Aktives Mitglied
Ich probiere hier zwar rum, aber irgendwie komme ich nicht weiter. Hat nicht jemand einen Ansatz zu meinen Fragen? ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk Allgemeine Fragen AWT, Swing, JavaFX & SWT 6
thor_norsk Allgemeine Fragen AWT, Swing, JavaFX & SWT 4
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
D Fragen zur GUI AWT, Swing, JavaFX & SWT 4
M NetBeans JFrame Grundlangen fragen AWT, Swing, JavaFX & SWT 6
T JavaFX Allgemeine Fragen zu JavaFX (uA zu Properties) AWT, Swing, JavaFX & SWT 6
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
K Fragen zu JavaFx Canvas AWT, Swing, JavaFX & SWT 0
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
F DefaultTreeCellEditor - Fragen zur Groesse und zum Icon beim Editieren AWT, Swing, JavaFX & SWT 4
Kenan89 JMenu Fragen AWT, Swing, JavaFX & SWT 5
Luk10 (LWJGL) Fragen zu VBOs AWT, Swing, JavaFX & SWT 21
M Swing JTextPane + Scrollbar = Fragen AWT, Swing, JavaFX & SWT 15
S Fragen zu JList AWT, Swing, JavaFX & SWT 3
J Das erste Projekt und ein Haufen von Fragen. Der SudokuReader. AWT, Swing, JavaFX & SWT 4
Luk10 Fragen zum Laden von Fonts AWT, Swing, JavaFX & SWT 4
Luk10 Fragen zum Koordinaten System AWT, Swing, JavaFX & SWT 3
M JTable Grundlegende Fragen AWT, Swing, JavaFX & SWT 4
B Prozentrechner GUI Fragen AWT, Swing, JavaFX & SWT 4
H Fragen zu JPanel und JButton AWT, Swing, JavaFX & SWT 3
Q Swing Zeichenprogramm, grundlegende Fragen AWT, Swing, JavaFX & SWT 8
U Swing Fragen bezüglich Multithreaded GUIs (Grundlagen): AWT, Swing, JavaFX & SWT 3
R LayoutManager GridBagLayout Fragen AWT, Swing, JavaFX & SWT 10
A diverse Layout-Fragen AWT, Swing, JavaFX & SWT 4
M LayoutManager Einige Fragen zum GridBagLayout AWT, Swing, JavaFX & SWT 13
H Swing Zwei Fragen AWT, Swing, JavaFX & SWT 5
S 2D-Grafik Diverse Fragen zu Imagemanipulation in Java AWT, Swing, JavaFX & SWT 11
C Swing Grundsätzliche Fragen zu MVC AWT, Swing, JavaFX & SWT 8
F 3 Fragen zu Applets AWT, Swing, JavaFX & SWT 4
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
S Fragen zu GridBagLayout AWT, Swing, JavaFX & SWT 6
B Zeichnen in Swing - Jede Menge Fragen! AWT, Swing, JavaFX & SWT 2
D Fragen zu Swing, paintComponent() und repaint AWT, Swing, JavaFX & SWT 6
D GridBagLayout und JEditorPane (mehrere fragen) AWT, Swing, JavaFX & SWT 2
A Swing einfache fragen zu frame AWT, Swing, JavaFX & SWT 10
P Mehrere Fragen AWT, Swing, JavaFX & SWT 4
A Fragen zu Microber AWT, Swing, JavaFX & SWT 4
C Mehrer Fragen zu großem kompletten Swing Beispiel AWT, Swing, JavaFX & SWT 5
T Fragen zu JList und DnD AWT, Swing, JavaFX & SWT 13
I Einige Fragen zu JList AWT, Swing, JavaFX & SWT 6
I Drei Fragen/Probleme mit einer JTable AWT, Swing, JavaFX & SWT 9
G Fragen zum FileChooser AWT, Swing, JavaFX & SWT 5
M 2 Kleine Fragen zum JOptionFrame AWT, Swing, JavaFX & SWT 5
G performance fragen zu AWT, Swing AWT, Swing, JavaFX & SWT 14
J Fragen zu JTable und JScrollpane AWT, Swing, JavaFX & SWT 2
R Frage zu Listfeld oder jTable, auch andere Fragen AWT, Swing, JavaFX & SWT 5
C Fragen zur Darstellung einer JTable mittels Renderer AWT, Swing, JavaFX & SWT 2
ModellbahnerTT Fragen zu AWT AWT, Swing, JavaFX & SWT 3
S Fragen Databinding? AWT, Swing, JavaFX & SWT 3
J Fragen zu AWT Komponenten AWT, Swing, JavaFX & SWT 5
U 2 Fragen zu BufferedImages AWT, Swing, JavaFX & SWT 19
J Fragen zur Vererbung und Update AWT, Swing, JavaFX & SWT 12
I Ein paar SWT Fragen AWT, Swing, JavaFX & SWT 10
P Zwei Fragen zu Bildern in Applets AWT, Swing, JavaFX & SWT 2
isowiz Einige Fragen zur ersten eigenen Sing-Applikation AWT, Swing, JavaFX & SWT 4
G 2 Fragen JDesktopPane AWT, Swing, JavaFX & SWT 4
S Fragen zu einem Beispiel(Swings und AWT) AWT, Swing, JavaFX & SWT 33
G Fragen zum Ocean Look and Feel AWT, Swing, JavaFX & SWT 3
G Neue Komponente erstellen - Fragen/Probleme mit MouseEvents AWT, Swing, JavaFX & SWT 2
Y 2 Fragen- JList Inhalt ändern und Fenster invisible setzen AWT, Swing, JavaFX & SWT 5
C Gemischte Fragen AWT, Swing, JavaFX & SWT 10
G Fragen zu JList AWT, Swing, JavaFX & SWT 12
K 2 fragen:JCheckBoxMenuItem und ComboBox AWT, Swing, JavaFX & SWT 2
T Mehrere Fragen zu JToolBar AWT, Swing, JavaFX & SWT 2
N 2 Fragen (zu binärem Suchen und Scrollbar) AWT, Swing, JavaFX & SWT 6
B Einige Fragen zum GUI AWT, Swing, JavaFX & SWT 3
S HTML Syntaxhighlighting AWT, Swing, JavaFX & SWT 7
cedi Syntaxhighlighting AWT, Swing, JavaFX & SWT 11
F Swing Syntaxhighlighting Hilfe AWT, Swing, JavaFX & SWT 5
K Swing JTextPane Formatierungen SyntaxHighlighting AWT, Swing, JavaFX & SWT 11
G Syntaxhighlighting bei JTextArea AWT, Swing, JavaFX & SWT 5
P DefaultStyledDocument eingegebenen String durchsuchen und bestimmte Sachen einfärben AWT, Swing, JavaFX & SWT 1
D Swing DefaultStyledDocument .. Cursorposition bei insertString AWT, Swing, JavaFX & SWT 7
I "default"-Style im DefaultStyledDocument AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben