4 Stimmen

Ist es möglich, Werte/Funktionsdefinitionen (F#) in Visual Studio 2008 zu minimieren?

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.

9voto

Tomas Petricek Punkte 233658

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?

1voto

JaredPar Punkte 699699

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.

0voto

Stringer Punkte 11773

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X