Gibt es eine Möglichkeit, Funktionen und Werte in VS2008 "zusammenzufassen", wie man es bei Objekten in Sprachen wie C# tun würde? Es ist unglaublich zeitaufwändig und frustrierend, sich durch Hunderte von verschachtelten Funktionsdefinitionen zu arbeiten.
Antworten
Zu viele Anzeigen?Also, die offizielle Antwort lautet, dass dies nicht unterstützt wird. Während meines Praktikums beim F#-Team habe ich jedoch eine Prototypimplementierung dieser Funktion geschrieben. Da das F#-Team jedoch andere wichtigere Dinge zu erledigen hatte, wurde dies nie ordnungsgemäß getestet und nicht in die endgültige Version aufgenommen.
Der Code für die Funktion ist tatsächlich immer noch in F# vorhanden und die Funktion kann aktiviert werden, indem man Folgendes zur devenv.exe.config
-Datei hinzufügt:
Anscheinend ist es nicht genau das, was Sie wollten, da Sie nur Module und Typdefinitionen zusammenklappen können, aber es könnte trotzdem nützlich sein - es ist schwierig zu entscheiden, was in F# zusammenklappbar sein soll, da F# so viele verschachtelte Deklarationen hat...
Übrigens: Habe ich erwähnt, dass dies nicht getestet ist und Visual Studio zum Absturz bringen oder sogar das Universum zusammenbrechen kann?
Nein, in Visual Studio 2008 gibt es das nicht, da der Sprachdienst kein Outlining unterstützt. Auch in Visual Studio 2010 gibt es das nicht. Der Editor unterstützt jedoch die Idee von adhoc / individuellem Outlining.
- Wählen Sie eine Region im Editor aus
- Klicken Sie mit der rechten Maustaste und gehen Sie zu Outlining -> Selection ausblenden
Leider ist dies ein komplett manueller Prozess.
Ich bin mit etwas gekommen, das für mich funktioniert und dich vielleicht interessieren wird. Ich habe VS2008+RockScroll (Works On My Machine).
Es hilft wirklich, wenn ich mit vielen verschachtelten Funktionen umgehen muss, denn so sehe ich das gesamte Bild viel besser. Außerdem mache ich einen Kommentar am Anfang des Funktionskörpers, wie zum Beispiel:
// Start of bigFunctionWithLoadsOfNestedFunctions
Wenn ich darauf doppelklicke, hebt es sowohl die durch let gebundene Definition als auch den tatsächlichen Start der Funktion in der Miniaturansicht rot hervor. Siehe: http://img338.imageshack.us/img338/1060/40105807.png