2011-07-06 15 views
7

Tworzę rozszerzenie Visual Studio 2010 przy użyciu dodatku SDK SP1 dla programu VS 2010, który otworzy pliki kodu źródłowego w edytorze kodu. Rozszerzenie to ToolWindow, które jest zadokowane tam, gdzie znajduje się Eksplorator rozwiązań.Otwórz dokument bez kodu źródłowego w edytorze kodu z rozszerzenia VS 2010

Rozszerzenie korzysta z usługi WCF, w której pobiera pliki kodu źródłowego i wyświetla hierarchię w widoku drzewa. Gdy plik kodu zostanie podwójnie kliknięty, powinien załadować powiązane źródło do okna edytora kodu, tak jak robi to Eksplorator rozwiązań.

Od jakiegoś czasu czytałem o automatyce rozszerzającej VS i DTE i zrobiłem bardzo mały postęp. Wygląda na to, że mam dostęp do już otwartych lub aktywnych WpfTextViews bez problemu, ale nie rozumiem, jak otworzyć nowy TextView w obszarze dokumentu IDE. Należy pamiętać, że nie są to rzeczywiste pliki kodu źródłowego zapisane na dysku, ale raczej są pobierane z usługi WCF i przechowywane w pamięci.

Czy ktoś może podać przykład lub podać mi wskazówki dotyczące wdrożenia? Dziękuję Ci.

Odpowiedz

1

Co powiesz na utworzenie pliku tymczasowego, wypełnienie go kodem źródłowym i załadowanie pliku tymczasowego? (Lub tworzenia nowego pliku tymczasowego, dodając go do IDE, a następnie włóż tam swój kod źródłowy ...)

Może to nie jest dokładnie to, czego chciał, ale będzie to rade ...

(Jeśli utworzysz nowy plik w VS (Plik -> Nowy ...), VS utworzy również plik tymczasowy i poprosi o "poprawną" lokalizację, jeśli chcesz zapisać plik po raz pierwszy.)

+0

Zastanowiłem się nad zrobieniem tego, ale nie mogłem dowiedzieć się, jaki kod użyć, aby faktycznie zadziałało. Częścią problemu jest to, że VS nie lubi otwierać plików, które nie są częścią heirarchii rozwiązań, więc chce, abyś określił projekt lub rozwiązanie, do którego należy plik. Jeśli plik nie zostanie otwarty jako część projektu, nie dostaniesz żadnych korzyści z intellisense lub innych przydatnych funkcji edytora kodu. Zastanawiam się, czy istnieje sposób odwoływania się do bibliotek lub biblioteki DLL, które intellisense może użyć do budowania swojej bazy danych. Jeśli masz przykład kodu otwierającego okno kodu, podziel się nim. – Paccc

1

Dlaczego nie utworzyć pamięci podręcznej całego drzewa źródeł na dysku lokalnym, a następnie po prostu załadować rozwiązanie z pliku zamiast z pamięci?

Powiązane problemy