ReSharper verhindert SmartTag-Shortcut

Seit meiner letzten Installation des VS 2015 und ReSharper 2016.1 Ultimate hatte ich das Problem, dass mein Shortcut Strg + ‚.‘ nicht mehr wie gewohnt funktioniert. Nach längerem Stöbern habe ich nun die Lösung. Ich werde hier auch den Lösungsweg zeigen, damit auch User mit anderen Extensions und ähnlichen Problemen einen Ansatz bekommen.

Problem

Wenn man Extensions, wie z.B. ReSharper installiert, kommt es oft zu Problemen mit der Integration ins Visual Studio. Da unser VS inzwischen Extensions sehr viel Freiraum bei der Integration gibt, kann es zu ungewollten Komplikationen kommen. ReSharper z.B. bringt eine Tonne von Shortcuts mit, die natürlich irgendwann mit denen von VS kollidieren.

Einige Tools (auch R#) bringen dafür Konfigurationen wie die im folgenden Screen gezeigte mit:

r#_01

Das Problem ist hier, dass ab einem bestimmten Punkt soviel in den Einstellungen „vermurkst“ ist, dass selbst das Abschalten (letzte Option) nichts mehr bewirkt.

Mein Problem war nun, dass mir zwar SmartTags nach wie vor gezeigt wurden und ich die Maus nutzen konnte, ich mich aber bereits an den Shortcut Strg + . gewöhnt hatte und diesen weiter nutzen wollte:

r#_02

Der Screenshot zeigt, wie ich per Maus das SmartTag anklicke. Per Shortcut öffnet sich dieses Menu nicht.

Lösung

Die Lösung bestand in diesem Fall darin, dass es durch R# 2 Einstellungen für diese Funktion gibt:

  1. Visual Studio Shortcut „View.ShowSmartTag“
  2. ReSharper Shortcut „ReSharper_AltEnter“

Solche Shortcuts kann man in den Visual Studio Einstellungen unter „Environment“ -> „Keyboard“ finden:

r#_03

In dem gelb hinterlegten Feld kann man per Freitext nach bekannten Shortcuts suchen. Gibt man hier nun z.B. „Smarttag“ ein, kann man im unteren Bereich in dem grün hinterlegten Feld einen neuen Shortcut tippen und dann über „Assign“ zuweisen. Wichtig ist hier, dass man in der ComboBox „Use new shortcut in“ auf jeden Fall „Global“ auswählt.

Interessant ist in diesem Fall auch die Auswahl darüber namens „Shortcuts for selected command“. Sie zeigt, in welchen Scopes das oben in der Liste selektierte Kommando wechen Shortcut hat. Dazu vielleicht ein Beispiel:

r#_04

Im Screenshot habe ich oben das View.ShowSmartTag-Kommando ausgewählt und dann die Auswahl aufgeklappt. Wie man sieht, ist dieses Kommando in 5 Bereichen/Editoren mit Shortcuts definiert. Hier ist zu sehen, dass der Bereich „TextEditor“ fehlt und im globalen Scope „Shift+Alt+F10“ definiert ist.

Suche ich nun auf die gleiche Weise nach „AltEnter“, wird klar, warum das bei mir mit Strg + . nicht funktioniert hatte (das Bild zeigt bereits die Lösung):

r#_05

Man muss sicherstellen, dass der gewünschte Shortcut in dieser Liste erscheint (wie im Bild zu sehen). Die Einträge für „Global“ und „Text Editor“ müssen auf den gewünschten Shortcut zeigen und zwar bei dem gezeigten „AltEnter“-Kommando.

Der Grund, warum diese nicht beim Standard „View.ShowSmartTag“ stehen dürfen ist der, dass ReSharper das Standard-SmartTag von Visual Studio durch ein eigenes ersetzt und dabei das Default-Tag quasi deaktiviert. Wenn nun also „View.ShowSmartTag“ mit dem Kürzel belegt ist, klappt das nicht, weil diese Funktion gar nicht mehr vorhanden ist.

Hier nun die Vorgehensweise noch mal als kleines Video:

r#

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.