WinEdt 6.0 Syntax Highlighting FilterSet.ini Frage

Editoren wie TexWorks, TeXmaker, TeXstudio, TeXnicCenter, Kile, LyX, vi, Emacs und Co.


huckepick
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Sa 13. Mär 2010, 07:44

WinEdt 6.0 Syntax Highlighting FilterSet.ini Frage

Beitrag von huckepick »

Hallo miteinander,

ich habe mich mal näher mit der Konfiguration des syntax highlighting von WinEdt 6.0 beschäftigt.

Das Verhalten konnte ich bisher schon gut anpassen. Nun möche ich folgendes schaffen und stoße dabei auf Probleme:

Ich möchte mir vom Editor zeigen lassen, wo ich z.B. Satzzeichen falsch gesetzt habe. Wie im unten aufgeführten Beispiel möchte ich ein Komma rot markieren lassen, wenn davor ein Leerzeichen gesetzt wurde und grün markieren, wenn danach ein Leerzeichen gesetzt wurde.

Mir scheint das mit WinEdt möglich und ich will auch gar nicht darüber diskutieren, ob das Sinn macht. Mir geht es ums Prinzip.

Es folgen Auszüge aus der FilterSets.ini von WinEdt. Die können einfach zu der Originaldatei in dieser Reihenfolge hinzugefügt werden. Die Prioriäten orientieren sich an den Standardeinstellungen.

Ausserdem folgt code, wie er in einer tex, die mit WinEdt angezeigt wird, stehen könnte.

Inhalt Datei FilterSets.ini von WinEdt 6.0 (Auszug):
[...]

FILTER_SET="1Space"
  ENABLED=0
  MODE_FILTER=""
  SET=:[" "]
  BEFORE=""
  AFTER=""
  BOLN_NOT_OK=0
  EOLN_NOT_OK=0
  STRICT_PRIORITY=0
  PRIORITY=0
    DEFAULT_FONT=1
	
FILTER_SET="satzzeichen"
  ENABLED=0
  MODE_FILTER="*|Binary"
  SET=:[".,;:?!"]
  BEFORE=""
  AFTER=""
  BOLN_NOT_OK=0
  EOLN_NOT_OK=0
  STRICT_PRIORITY=0
  PRIORITY=5
    TEXT_COLOR=9
    DEFAULT_FONT=1 

	// Block A
	// Leerzeichen nach satzzeichen RICHTIG
FILTER_SET="space nach satzzeichen..."
  ENABLED=1
  MODE_FILTER="*|Binary"
//  SET="satzzeichen" 
  SET=:[".,;:?!"] 
  BEFORE="" 
  AFTER="1Space" 
  BOLN_NOT_OK=0
  EOLN_NOT_OK=0
  STRICT_PRIORITY=0
  PRIORITY=5
    TEXT_COLOR=2 // grün
    DEFAULT_FONT=1  
   // BACKGROUND_COLOR=2         
 
 // Block B
// // Leerzeichen vor satzzeichen FALSCH
FILTER_SET="space vor satzzeichen..."
  ENABLED=1
  MODE_FILTER="*|Binary"
//  SET="satzzeichen" 
  SET=:[".,;:?!"] 
  BEFORE="1Space" 
  AFTER="" 
  BOLN_NOT_OK=0
  EOLN_NOT_OK=0
  STRICT_PRIORITY=0
  PRIORITY=5 // 5?
    TEXT_COLOR=11 // gelb
    DEFAULT_FONT=1  
    BACKGROUND_COLOR=9  //rot

[...]
Inhalt tex code file:
[...]

zeile 1: sfsf, dfgdg
zeile 2: sdfd ,dfsdfsf

 [...]

erstes Problem:



Kommentiere ich BlockB im ini file aus, so wird z.B. das Komma in Zeile 1 korrekt grün angezeigt, da dahinter ein Leerzeichen steht.
Aktiviere (Auskommentierung aufheben) ich zusätzlich zu BlockA den BlockB, so bleibt das Komma in Zeile 1 schwarz und es greift nur noch die Farbänderung in Zeile 2, wo sich ein Leerzeichen vor dem Komma befindet.

-> Ich war davon ausgegangen, dass sich Blöcke gleicher Priorität ergänzen. Das scheint nicht so zu sein. Obwohl der Filter von BlockB nich auf Zeile 1 anwendbar sein sollte, scheint sozusagen BlockA durch BlockB überschrieben worden zu sein. Das ist seltsam, zumal man meines Wissens und meiner (kurzen) Erfahrung nach Zeichenformatierungen immer wieder neu definieren kann und bei gleicher Priorität der Formatregel die letzte Definition gilt, sobald das SET anwendbar ist.

Wo liegt mein Fehler?

Findet ein Überschreiben von Regeln allein auf Basis des SETS statt und nicht auf Basis der Komibnation sowohl aus SET als auch BEFORE und AFTER?

Wie kann ich den Fehler umgehen?



zweites Problem:


Block A und BlockB sind aktiviert. Wechsele ich die SET Zeile in Block B aus (SET=: auskommentieren, SET=" Kommentar löschen), so wird wieder nur die Regel von Block A erfolgreich angewendet. Block B wird praktisch invalide.

-> Ich sehe nicht meinen Fehler. Das SET satzzeichen ist korrekt definiert. Denn: Kommentiere ich Blöcke A und B aus, und setze den Filter satzzeichen auf enabled, dann werden die Satzzeichen in beiden Zeilen korrekt eingefärbt.

Wie kann ich diesen Fehler umgehen?