2012-03-30 17 views
4

Im Access VB6-Code-Editor springen Strg-Up und Strg-Down zur nächsten/vorherigen Funktionsdeklaration.Was sind die VS2010 Navigieren zu Next/Prev Funktionstasten?

Dies ist ein ziemlich praktisches Navigationswerkzeug und ich kann es nicht in VS2010 finden.

Ich habe einige Suche auf Google und Stackoverflow getan und kann anscheinend keinen Hinweis darauf finden.

Weiß jemand, ob diese Hotkeys in VS2010 überhaupt existieren?

Wenn nicht, wie zur Hölle können sie nicht in einer kontextbewussten IDE wie VS2010 existieren?

Antwort

1

Ja Hotkeys existieren: http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx

Und getrennte Erklärungen zu verschieben: Shift + Strg + 1/Shift + Ctrl + 2

+0

Diese scheinen nicht für mich zu arbeiten. Irgendeine Idee, was die eigentlichen Befehle im VS2010 Hotkey-Editor heißen? Auch nach der Beschreibung auf dieser Seite sieht es aus, als ob das mehr für die Navigation basierend auf der Variable/Funktion unter dem Cursor ist. – Ashy

+0

Es hängt davon ab, welche Sprache Sie verwenden. Für jede Sprache stellt Microsoft eine PDF-Datei zur Verfügung, die separaten Hot-Key-Sammlungen entspricht. – Rich

+0

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13189 – Rich

0

Ich glaube nicht, dass sie in VS2010 existieren, arbeiten wir in sowohl VS6 und 2010 und es ist ärgerlich, diese Befehle nicht zu haben.

0

Ich bin OCD mit Automatisierung in diesen Tagen, habe viele Makros gemacht, um mir zu helfen, zu navigieren. Es folgt ein VB-Makrocode, der in C (und wahrscheinlich auch in C++) funktioniert. Sie können in Visual Studio ein Makro erstellen und diese Zeilen hinzufügen. Der reguläre Ausdruck zum Erkennen von Funktionsdeklarationen ist wahrscheinlich nicht perfekt, aber ich benutze sie seit einer Woche und sie haben sich großartig für mich bewährt. Sie können diese 2 Makros den gewünschten Tastenbelegungen zuordnen, wenn Sie möchten, Strg + Hoch oder Strg + Runter. Wenn jemand den regulären Ausdruck verbessert, würde ich gerne die aktualisierte Version sehen.

Imports System 
Imports EnvDTE 
Imports EnvDTE80 
Imports EnvDTE90 
Imports EnvDTE90a 
Imports EnvDTE100 
Imports System.Diagnostics 
Imports System.Text.RegularExpressions 

Public Module NavigationMacros 
    Private Function IsFunctionDeclaration(ByRef LineText As String) As Boolean 
     If Regex.IsMatch(LineText, "^[^\s\d\W\(\)]+[^\(\)]+\s+[^\s\d\W\(\)]+\s*\([^\(\)]*\)\s*$") Then 
      IsFunctionDeclaration = True 
     Else 
      IsFunctionDeclaration = False 
     End If 
    End Function 

    Private Function GetLineText(ByRef EditPoint As EnvDTE.EditPoint) As String 
     EditPoint.StartOfLine() 
     GetLineText = EditPoint.GetText(EditPoint.LineLength) 
    End Function 

    Sub GoToPreviousFunctionDeclaration() 
     Dim Selection As EnvDTE.TextSelection 
     Dim EditPoint As EnvDTE.EditPoint 
     Dim LineText As String 

     Selection = DTE.ActiveDocument.Selection 
     EditPoint = Selection.TopPoint.CreateEditPoint 

     EditPoint.LineUp() 

     While IsFunctionDeclaration(GetLineText(EditPoint)) = False And Not EditPoint.AtStartOfDocument 
      EditPoint.LineUp() 
     End While 

     If Not EditPoint.AtEndOfDocument Then 
      Selection.MoveToLineAndOffset(EditPoint.Line, 1) 
     End If 
    End Sub 

    Sub GoToNextFunctionDeclaration() 
     Dim Selection As EnvDTE.TextSelection 
     Dim EditPoint As EnvDTE.EditPoint 
     Dim LineText As String 

     Selection = DTE.ActiveDocument.Selection 
     EditPoint = Selection.TopPoint.CreateEditPoint 

     EditPoint.LineDown() 

     While IsFunctionDeclaration(GetLineText(EditPoint)) = False And Not EditPoint.AtEndOfDocument 
      EditPoint.LineDown() 
     End While 

     If Not EditPoint.AtEndOfDocument Then 
      Selection.MoveToLineAndOffset(EditPoint.Line, 1) 
     End If 
    End Sub 
End Module 
Verwandte Themen