Udostępnij za pośrednictwem


Tworzenie niestandardowych edytorów i projektantów

Zintegrowane środowisko projektowe (IDE) programu Visual Studio może hostować różne typy edytorów:

  • Edytor podstawowy programu Visual Studio

  • Edytory niestandardowe

  • Edytory zewnętrzne

  • Projektanci

Poniższe informacje pomagają wybrać potrzebny typ edytora.

Typy edytora

Aby uzyskać informacje na temat edytora podstawowego programu Visual Studio, zobacz Rozszerzanie edytora i usług językowych.

Edytory niestandardowe

Edytor niestandardowy jest przeznaczony do pracy w wyspecjalizowanych okolicznościach. Możesz na przykład utworzyć edytor, którego funkcja polega na odczytywanie i zapisywanie danych w określonym repozytorium, takim jak serwer Microsoft Exchange. Wybierz edytor niestandardowy, jeśli chcesz, aby edytor współdziałał tylko z typem projektu lub jeśli chcesz, aby edytor miał tylko kilka określonych poleceń. Należy jednak pamiętać, że użytkownicy nie będą mogli edytować standardowych projektów programu Visual Studio przy użyciu edytora niestandardowego.

Edytor niestandardowy może używać fabryki edytora i dodawać informacje o edytorze do rejestru. Jednak typ projektu skojarzony z edytorem niestandardowym może utworzyć wystąpienie edytora niestandardowego w inny sposób.

Edytor niestandardowy może używać aktywacji w miejscu lub uproszczonego osadzania w celu zaimplementowania widoku.

Edytory zewnętrzne

Edytory zewnętrzne to edytory, które nie są zintegrowane z programem Visual Studio, takimi jak Microsoft Word, Notatnik lub Microsoft FrontPage. Możesz wywołać taki edytor, jeśli na przykład przekazujesz do niego tekst z pakietu VSPackage. Edytory zewnętrzne rejestrują się i mogą być używane poza programem Visual Studio. Po wywołaniu edytora zewnętrznego można go osadzić w oknie hosta, a następnie pojawi się w oknie środowiska IDE. Jeśli tak nie jest, środowisko IDE utworzy osobne okno dla niego.

Metoda IsDocumentInProject ustawia priorytet dokumentu przy użyciu VSDOCUMENTPRIORITY wyliczenia. DP_External Jeśli wartość jest określona, plik można otworzyć za pomocą edytora zewnętrznego.

Decyzje projektowe edytora

Następujące pytania projektowe pomogą Ci wybrać typ edytora, który najlepiej nadaje się do twojej aplikacji:

  • Czy aplikacja zapisze swoje dane w plikach, czy nie? Jeśli dane zostaną zapisane w plikach, będą one w formacie niestandardowym lub standardowym?

    Jeśli używasz standardowego formatu pliku, inne typy projektów oprócz projektu będą mogły otwierać i odczytywać/zapisywać do nich dane. Jeśli jednak używasz niestandardowego formatu pliku, tylko typ projektu będzie mógł otwierać i odczytywać/zapisywać w nich dane.

    Jeśli projekt używa plików, należy dostosować edytor standardowy. Jeśli projekt nie używa plików, ale używa elementów w bazie danych lub innym repozytorium, należy utworzyć edytor niestandardowy.

  • Czy edytor musi hostować kontrolki ActiveX?

    Jeśli edytor hostuje kontrolki ActiveX, zaimplementuj edytor aktywacji w miejscu zgodnie z opisem w temacie Aktywacja w miejscu. Jeśli nie hostuje kontrolek ActiveX, użyj uproszczonego edytora osadzania lub dostosuj edytor domyślny programu Visual Studio.

  • Czy edytor będzie obsługiwał wiele widoków? Musisz obsługiwać wiele widoków, jeśli widoki edytora mają być widoczne w tym samym czasie co edytor domyślny.

    Jeśli edytor musi obsługiwać wiele widoków, dane dokumentu i obiekty widoku dokumentu dla edytora muszą być oddzielnymi obiektami. Aby uzyskać więcej informacji, zobacz Obsługa wielu widoków dokumentów.

    Jeśli edytor obsługuje wiele widoków, czy planujesz użyć implementacji buforu tekstowego edytora programu Visual Studio (VsTextBuffer obiektu) dla obiektu danych dokumentu? Oznacza to, że chcesz obsługiwać widok edytora obok edytora podstawowego programu Visual Studio? Możliwość wykonania tej czynności jest podstawą projektanta formularzy.

  • Jeśli chcesz hostować edytor zewnętrzny, czy edytor można osadzić w programie Visual Studio?

    Jeśli można go osadzić, należy utworzyć okno hosta dla edytora zewnętrznego, a następnie wywołać IsDocumentInProject metodę i ustawić VSDOCUMENTPRIORITY wartość wyliczenia na DP_External. Jeśli edytor nie może być osadzony, środowisko IDE automatycznie utworzy dla niego osobne okno.

W tej sekcji

Przewodnik: tworzenie edytora niestandardowego
W tym artykule wyjaśniono, jak utworzyć edytor niestandardowy.

Przewodnik: dodawanie funkcji do edytora niestandardowego
Objaśnienie sposobu dodawania funkcji do edytora niestandardowego.

Projektant inicjowanie i konfigurowanie metadanych
Wyjaśnia, jak zainicjować projektanta.

Dostarczanie obsługi cofania projektantom
W tym artykule wyjaśniono, jak zapewnić obsługę cofania dla projektantów.

Kolorowanie składni w edytorach niestandardowych
Objaśnia różnicę między kolorowaniem składni w edytorze podstawowym i w edytorach niestandardowych.

Dokumentowanie danych i widoku dokumentów w edytorach niestandardowych
Objaśnienie sposobu implementowania danych dokumentów i widoków dokumentów w edytorach niestandardowych.