Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Xml-Syntax-Highlighting verbessern
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

Themenstarter:

[gelöst] Xml-Syntax-Highlighting verbessern

beantworten | zitieren | melden

Moderationshinweis von herbivore (24.01.2011 - 18:42:24):

Dadurch, dass die gewünschte Änderung vollzogen wurde, sieht das Beispiel hinsichtlich der Attribute jetzt schon so aus, wie gewünscht. Vorher waren sie in der gleichen Farbe wie die Tags.


Edit: Vielen Dank, herbivore!
--------------------
Hallo!

Könnte man das Syntax-Highlighting von Xml verbessern?

Ist mir aufgefallen, seit ich häufiger in WPF unterwegs bin, da wird das ja sehr häufig gebraucht

Derzeit siehts zB so aus:
<Application x:Class="Application33"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:my="clr-namespace:AdminWizard" 
    xmlns:hlp="clr-namespace:System.Windows.Controls;assembly=WpfHelpers" 
    xmlns:dtm="clr-namespace:AdminWizard.DataModel" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    StartupUri="Views\MainWindow.xaml"
             >
  <!--
    StartupUri="Views\Window3.xaml"
    -->
  <Application.Resources>
    <x:Array x:Key="TestArray" x:Type="sys:Int32">
      <sys:Int32>87</sys:Int32>kllj
    </x:Array>
    <hlp:DebugConverter x:Key="DebugConverter"/>
    <my:ViewModelRoot x:Key="RootModel" />
    <hlp:BoolConverter x:Key="BoolBrushConverter">
      <SolidColorBrush>#FFC8C8</SolidColorBrush>
      <SolidColorBrush>White</SolidColorBrush>
    </hlp:BoolConverter>

Also ich glaub gut wäre, wenn Attribute-Namen sich farblich von Tag-Namen unterschieden.
Im VS-Xaml-Editor sind Tag-Namen braun, Attribut-Namen rot, und Attribut-Werte blau (s. Bild) - das finde ich gut. Schlecht am VS-Xml finde ich, das Text auch braun ist - da ist myCSharp wieder besser.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Attachments
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo ErfinderDesRades,

andere Farben als die jetzigen für die bestehenden Syntaxelemente zu verwenden, ist natürlich technisch gar keine Hürde. Es viel fraglicher, ob man eine Farbgebung findet, die die Zustimmung aller findet.

Ich kann z.B. nicht einschätzen, ob die Farben, die du in VS eingestellt hast, auch verbreitet sind, oder ob andere Farbschemata vorgezogen werden. Mir persönlich würden Tags in braun und Strings in blau nun absolut nicht gefallen, zumal blau in C#-Tags für Keywords verwendet werden, was ja am ehesten den Tag-Namen entspricht. Kurz gesagt, ich würde die Farben grundsätzlich lieber so lassen wie sie sind.

Eine weitere Farbe für Attribute zu verwenden, sollte jedoch kein großes Problem sein. Ich schau mal, ob ich das kurzfristig hinbekomme.

herbivore
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo herbivore,

bis auf das bananengelb sind die von ErfinderDesRades verwendeten Farben die Standardfarben von Visual Studio.
Rote Attribute fände ich ebenfalls sehr schön.

m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo zusammen,

die Attribute werden jetzt erkannt und in rot angezeigt.

herbivore
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo herbivore,

chic, danke für die Änderung – bereits jetzt ist XAML-Markup deutlich lesbarer geworden!

Ich würde mich trotzdem freuen, wenn du dir die restliche Farbgebung für Tag-Namen und Strings nochmal durch den Kopf gehen lassen würdest. Der Großteil der Forenbenutzer wird Visual Studio verwenden und demnach dessen Farbschema gewöhnt sein.
Es ist selbstverständlich dein gutes Recht, wenn dir braune Tags und blaue Strings nicht gefallen – andererseits wird es genau so viele Benutzer geben, denen es andersherum ergeht. Daher wäre ich dafür, sich der XAML-Farbkonvention von Visual Studio anzupassen und der Konvention zu folgen, um die Umstellung vermeiden zu können.

m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo m0rius,

wenn ich es richtig sehe, ist bei VS aber auch Standard, dass C#-Schlüsselworte blau und C#-Strings braun dargestellt werden, oder? Wenn das stimmt, muss man doch wirklich sagen, dass Microsoft hier inkonsequent ist.

Ich kann das Argument mit der besseren Lesbarkeit des gewohnten verstehen, aber ich kann es genauso gut umdrehen. Wenn man in C# an blaue Schlüsselworte und braune Strings gewöhnt ist, ist XML nicht so gut lesbar, wenn es dort andersherum ist.

herbivore
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo herbivore,

ich kenne die Beweggründe nicht, aus denen sich Microsoft für die abweichende Farbgebung entschieden hat. Allerdings kann man nicht als Argument anführen, dass eine andere Sprache – und C# und XAML sind nunmal zwei verschiedene Sprachen – ein anderes Farbschema verwendet. Schließlich stellen wir hier Schlagwörter auch nicht lila und fett dar, nur weil es Eclipse für Java so macht.

Lange Rede, kurzer Sinn: Ich bin der Meinung, dass man, welche Konvention auch immer verwendet wird, und die von Visual Studio ist die gängigere, diese beibehalten sollte — stick to it.

m0rius
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
el_panter
myCSharp.de - Member



Dabei seit:
Beiträge: 406
Herkunft: Sömmerda

beantworten | zitieren | melden

moin in die runde

man könnte im sinne der diskusion hier den ganzen spas auch noch auf die spitze treiben in den man jeden benutzer selbst einstellen läst welche farben er gerne hätte :P

wenn man es etwas geschikt anstellt benötigt man dafür pro sitzung auch nur eine zusätzliche db abfrage. aber ich denke mal hier verhält es sich ähnlich zu den sonstigen feature wünschen -> wenn sich keiner für die umsetzung findet wirds nix (wobei ich hier, wenn es grünes licht von oben gibt, durchaus interesiert an der umsetzung wäre)

mfg

Paul
MfG Paul
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo el_panter,

im Grunde bräuchte man dafür noch nicht mal was zu implementieren, sondern es gibt im WBB die Möglichkeit, verschiedene Style- bzw. Designpacks zu definieren, aus denen jedes Mitglied in den Einstellungen eins auswählen kann. Allerdings ist es verdammt tricky bei nachfolgenden Änderungen alle Style- und Designpacks konsistent zu halten. Das bedeutet zusätzlichen Änderungsaufwand, ist eine zusätzliche Fehlerquelle und verlängert auch den Test nach Änderungen. Selbst wenn also jemand die initiale Erstellung übernehmen würde, müssten wir den Folgeaufwand tragen. Das rechnet sich nicht, sorry.

Natürlich können man auch ein neues Profil-Feld hinzufügen, und an Hand dessen entscheiden, welche Farben verwendet werden sollen. Das Feld kann man direkt über das WBB anlegen und die Abfrage wäre eine relativ kleine Code-Änderung. Aber die Erfahrung hat gezeigt, dass neue Profil-Felder nur sehr wenig angenommen werden, sprich die Zahl der Benutzer, die eine andere Einstellung als den Standard-Wert hat, ist verschwindend gering. Man treibt also Aufwand und erhöht die Komplexität für einige, wenige Mitglieder. Auch das rechnet sich nicht.

So wie übrigens auch das Aufwand-Nutzen-Verhältnis einer Fortsetzung dieser Diskussion als sehr ungünstig betrachte. :-)

herbivore
private Nachricht | Beiträge des Benutzers
HiGHteK
myCSharp.de - Member



Dabei seit:
Beiträge: 117

beantworten | zitieren | melden

Sofern alle Farben beim Syntaxhighlighting via CSS-Klassen definiert werden, dann kann jeder Firefox-User auch via dem Plugin Stylish seine eigenen Farben vergeben. Die Erweiterung bietet die Möglichkeit zu jeder Website eigene CSS-Definitionen zu hinterlegen, so dass man vorhandene einfach überschreiben kann.
Wäre zumindest eine Möglichkeit ohne Änderung an der Forensoftware vornehmen zu müssen

Grtz
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

Themenstarter:

beantworten | zitieren | melden

das wichtigste, dass die Attributnamen vom TagNamen unterschieden sind - das ist ja erledigt. Jetzt könnte man höchstens noch ein roteres Rot probieren, um den Kontrast AttributName - AttributWert zu erhöhen,
<Application x:Class="Application33"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:my="clr-namespace:AdminWizard" 
    xmlns:hlp="clr-namespace:System.Windows.Controls;assembly=WpfHelpers" 
    xmlns:dtm="clr-namespace:AdminWizard.DataModel" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    StartupUri="Views\MainWindow.xaml"
             >
  <!--
    StartupUri="Views\Window3.xaml"
    -->
  <Application.Resources>
    <x:Array x:Key="TestArray" x:Type="sys:Int32">
      <sys:Int32>87</sys:Int32>kllj
    </x:Array>
    <hlp:DebugConverter x:Key="DebugConverter"/>
    <my:ViewModelRoot x:Key="RootModel" />
    <hlp:BoolConverter x:Key="BoolBrushConverter">
      <SolidColorBrush>#FFC8C8</SolidColorBrush>
      <SolidColorBrush>White</SolidColorBrush>
    </hlp:BoolConverter>
<Application x:Class="Application33"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:AdminWizard"
xmlns:hlp="clr-namespace:System.Windows.Controls;assembly=WpfHelpers"
xmlns:dtm="clr-namespace:AdminWizard.DataModel"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="Views\MainWindow.xaml"
>
<!--
StartupUri="Views\Window3.xaml"
-->
<Application.Resources>
<x:Array x:Key="TestArray" x:Type="sys:Int32">
<sys:Int32>87</sys:Int32>kllj
</x:Array>
<hlp:DebugConverter x:Key="DebugConverter"/>
<my:ViewModelRoot x:Key="RootModel" />
<hlp:BoolConverter x:Key="BoolBrushConverter">
<SolidColorBrush>#FFC8C8</SolidColorBrush>
<SolidColorBrush>White</SolidColorBrush>
</hlp:BoolConverter>



Von zugegebenermaßen fragwürdiger Ästhetik, sone Knallfarbe mit reinzunehmen, aber das Set zueinander kontrastierender Farben ist recht begrenzt, und grün sind schon die Kommentare. Und unsereiner ists rot vom VS her gewohnt
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo HiGHteK,

vielen Dank, das Add-On kannte ich noch nicht. Habe mir jetzt für die Codeblöcke überall Consolas eingestellt und die Farben dem Farbschema von Visual Studio angepasst – sieht sehr viel besser aus!

Hier die CSS-Styles für Stylish für alle Interessierten:
@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("www.mycsharp.de") {
    code {
        font-family: Consolas;
        font-size: 10pt;
    }

    .xmltag {
        color: #a31515 !important;
    }

    .xmlattr {
        color: #ff0000 !important;
    }

    .xmlcomment {
        color: #008000 !important;
    }

    .xmlstring {
        color: #0000ff !important;
    }
}
m0rius
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von m0rius am .
Attachments
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo zusammen,

freut mich, dass es damit jetzt eine relativ einfache Lösung gibt, mit der es jeder selbst in der Hand hat, die Farben (und Schriften) einzustellen, die er am besten findet.

Damit sehe ich mich auch der Pflicht enthoben, "sone Knallfarbe von zugegebenermaßen fragwürdiger Ästhetik reinzunehmen". Die kann jetzt ja jeder selbst einstellen, wenn er sie will.

herbivore
private Nachricht | Beiträge des Benutzers