Editor Optionen in SSMS

Dieser Artikel in Englisch…

Überblick

In aller Regel verwenden Editoren aus den bekannten Entwicklungsumgebungen inklusive SQL Server Management Studio (SSMS) monospaced Schriften: jedes Zeichen beansprucht damit die gleiche Breite im Textfluss. Texte lassen sich unter Verwendung von monospaced Schriften hervorragend einrücken und ausrichten. Ein effizientes Feature für die Ausrichtung und Einrückung von Text-Elementen ist die Tabulator-Taste. Der selektierte Text wird damit gleich über mehrere Zeichen hinweg eingerückt.

Damit aber können Probleme erst anfangen…

  • Um wie viele Zeichen wird der Text eingerückt?
  • Welche(s) Zeichen wird beim Drücken der Tabulator Taste eingefügt?
  • Was passiert, wenn Entwickler unterschiedliche Editoren verwenden?
  • Was passiert, wenn Entwickler unterschiedliche Schrittweiten für einen Tabulator verwenden?

Voraussetzung für die Erstellung von strukturiertem Code in einer Mehrentwicklerumgebung ist die Festlegung von einheitlichen Editor-Einstellungen unabhängig davon, welcher Editor verwendet wird. Welche Einstellungen sind nun für eine erfolgreiche Zusammenarbeit mehrerer Entwickler relevant:

  • Monospaced Schrifart
  • Keine Vermischung von Leerzeichen und Tabulatoren
  • Tabulatoren durch Leerzeichen ersetzen
  • Blockweise Einrückung

Zu Beginn eines jeden Projektes sollten sich alle Entwickler auf Einstellungen hinsichtlich Schriftart, der verwendeten Editoren, der Tab-Weite und der Verwendung von Leerzeichen einigen.

Monospaced Schrifart

Da wohl alle integrierten Entwicklungsumgebungen per Default monospaced Schriftarten in den Editoren verwenden, erscheint dieser Punkt als selbstverständlich. Der Vollständigkeit halber soll dieser hier erwähnt werden.

Bei Non-Monospaced Schriften beansprucht ein Zeichen genau so viel Platz wie für seine Repräsentation erforderlich ist. Ein i wird immer weniger Platz als ein m beanspruchen. Hieraus ergeben sich natürlich Probleme bei der Ausrichtung von Text-Elementen.

Die Bedingungen der WHERE-Klausel auf den Feldern [name] und [system_type_id] können bei Verwendung der Schriftart Arial nicht wie in dem nachfolgenden Beispiel bei Verwendung der Schriftart Consolas linksbündig exakt ausgerichtet werden.

Einrückungen und damit eine strukturierte Formatierung von SQL Code sind daher nur bei Verwendung von monospaced Schriftarten möglich.

Konfiguration in SSMS

Die Schriftart kann über die Optionen des SSMS eingestellt werden: Optionen | Umgebung | Schriftarten und Farben

Monospaced Schriftarten sind in der Liste der Schriftarten Fett dargestellt.

Keine Vermischung von Leerzeichen und Tabulatoren

Jeder Entwickler hat so seine Vorlieben hinsichtlich der Formatierung von SQL Code. Die einen verwenden eher den Tabulator als Mittel der Wahl für die Einrückung und die anderen mühen sich mit der Eingabe von Leerzeichen ab um SQL Code zu formatieren. Werden SQL-Prozeduren etc. von mehreren Entwicklern bearbeitet, werden schnell Tabulatoren und Leerzeichen vermischt. Solange die Tab-Weite in allen von den Entwicklern verwendeten Editoren überall auf zum Beispiel 3 Zeichen festgelegt ist, mag ein SQL Statement stimmig formatiert sein. Verwendet jedoch ein Entwickler die Tab-Weite 3 und ein anderer die Tab-Weite 4, wird ein Statement schnell unleserlich und ist für eine effiziente Bearbeitung eher ungeeignet. Das nachfolgende Statement verdeutlicht die Vermischung von Leerzeichen und Tabulatoren als Mittel für die Einrückung:

Augenscheinlich sind die Pipe Symbole bei einer Tab-Weite von vier Zeichen ausgerichtet. Bei Verwendung anderer Tab-Weiten wird jedoch schnell deutlich, dass die Ausrichtung verloren geht.

In diesem Beispiel mögenden die abweichenden Einrückungen nur minimal erscheinen. Bei komplexeren Statements kann die Durchmischung von Tabulatoren und Leerzeichen ein SQL-Statement schon arg zerrupfen.

Grund für die Durchmischung von Leerzeichen und Tabulatoren können nicht nur unterschiedliche Einstellungen in SSMS sein, sondern auch die Verwendung von unterschiedlichen Editoren.

Konfiguration in SSMS

Die Größe der Einrückung kann über die Optionen des SSMS eingestellt werden: Optionen | Text-Editor | Transact-SQL | Tabstopps

Empfehlung

  • Verwende stets Leerzeichen für Einrückungen.
  • Mit der Verwendung von Leerzeichen ist eine wesentlich präzisere Formatierung möglich.
  • Bei Verwendung von Leerzeichen ist unabhängig von dem verwendeten Editor eine identische Darstellung des Statements gewährleistet.

Tip

  • Der Spalteneditor unterstützt den Entwickler bei der Eingabe bzw. Einrückung gleich mehrerer Zeilen oder Text-Blöcke.
  • Siehe auch Artikel Funktionale Ästhetik von SQL

Tabulatoren durch Leerzeichen ersetzen

Sofern Tabulatoren von dem verwendeten Editor automatisch durch Leerzeichen ersetzt werden, werden SQL Statements unabhängig von der Wahl des Editors und der eingestellten Tab-Weite immer korrekt dargestellt.

Empfehlung

  • Ersetze Tabulatoren immer durch Leerzeichen. Nur so ist eine präzise Formatierung von SQL-Code möglich und sichergestellt, dass die Repräsentation eines Statements unabhängig von dem verwendeten Editor immer korrekt ist.

Konfiguration in SSMS

Die Ersetzung von Tabulatoren durch Leerzeichen kann über die Optionen des SSMS eingestellt werden: Optionen | Text-Editor | Transact-SQL | Tabstopps

Anmerkung

Die Größe der Einrückung ist von der Tab-Weite zu unterscheiden. Die Tab-Weite gibt lediglich an, wie viele Zeichen ein Tabulator Zeichen beansprucht. Beim Drücken der Tabulator-Taste erfolgt eine Einrückung um die Einrückungsweite. Beträgt die Einrückungsweite zum Beispiel 10 und die Tab-Weite 5 dann werden beim Drücken der Tabulator-Taste 2 Tab-Zeichen mit je einer Tab-Weite von 5 Zeichen eingefügt.

Blockweise Einrückung

Sicherlich bedeutet die Verwendung von Leerzeichen als Mittel für die strukturierte Formatierung von SQL Statements einen Mehraufwand. SSMS unterstützt den Entwickler hier mit der Option der blockweisen Einrückung. Was hat es damit auf sich?

Befindet sich der Cursor zum Beispiel hinter dem Zeichen * und drückt der Entwickler die Enter-Taste, wird nicht nur eine neue leere Zeile eingefügt, sondern der Cursor wird automatisch an dem ersten Zeichen der voran gegangenen Zeile ausgerichtet. Ohne die Option der blockweisen Einrückung würde der Cursor immer auf die Position 1 der neuen Zeile positioniert werden.

Tatsächlich werden die Leerzeichen und/oder Tabulatoren für diese Einrückung erst dann eingefügt, wenn der Entwickler mit der Eingabe eines Zeichens beginnt.

Empfehlung

Verwende die blockweise Einrückung, um nachfolgende neue Zeilen an der jeweils vorangegangenen Zeile auszurichten.

Konfiguration in SSMS

Die blockweise Einrückung kann über die Optionen des SSMS eingestellt werden: Optionen | Text-Editor | Transact-SQL | Tabstopps