Trwa konkurs "Ogól naczelnego", w którym codziennie możecie wygrać najnowsze maszynki systemowe Hydro Connect 5 marki Wilkinson Sword.

Więcej informacji
Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Własna konfiguracja do wtyczki w oknie opcji Visual Studio

Jakiś czas temu przedstawiłem sposób na umieszczenie Timera Pomodoro na pasku statusu w Visual Studio. W kolejnym kroku dodamy opcje konfiguracyjne do wtyczki w standardowym oknie opcji IDE.

Do tej pory, aby pokazać timera na pasu statusu trzeba było ręcznie wywołać z menu opcję dodająca element do Visual Studio. Spróbujmy zatem skonfigurować tą poprzez oko opcji w IDE.

Autostart wtyczek w Visual Studio

Nasza wtyczka składa się z paczek (Packaga). W celu automatycznego uruchomienia dodatku przy starcie IDE musimy dodać atrybut do naszej klasy dziedziczącej po Package.

[ProvideAutoLoad(VSConstants.UICONTEXT.ShellInitialized_string)] public sealed class CommandShowTomatoStatusBarPackage : Package

Atrybut ProvideAutoLoad oznacza uruchomienie paczkę przy starce, zaś parametr określa kiedy ma to zrobić. Mamy kilka opcji:

  • ShellInitialized_string
  • NoSolution_string
  • EmptySolution_string
  • SolutionBuilding_string
  • ...

W moim przypadku będzie to ShellInitialized_string, czyli załadownie solucji, kiedy UI VS zostanie w pełni załadowane.

Okienko opcji w Visual Studio

Własne okienko w oknie konfiguracyjnym można umieścić bardzo prosto. Dodajemy do solucji nowy element Visual Studio Package. Następnie tworzymy nową klasę, która dziedziczyć będzie po DialogPage:

public class OptionPage : DialogPage

W kolejnym kroku dodamy zmienną typu bool, która zostanie przez IDE potraktowana jako opcja w menu i wyrenderowana w postaci grida z wyborem wartości True/False. W tym przypadku będzie ona określać, czy Timer Pomodoro ma załadować się przy starcie Visual Studio lub nie:

[Category(Consts.OptionsCategoryBasicName)] [DisplayName(Consts.OptionsCategoryBasicStatusBarAutostartText)] [Description(Consts.OptionsCategoryBasicStatusBarAutostartInfoText)] public bool AutostartPomodoroStatusBar {get; set;}

Category określa nazwę podwęzła w naszych opcjach, zaś DisplayName i Description są odpowiednio nazwami dla zmiennej i jej opisu w okienku opcji.

Teraz łączymy stworzony przed chwilą Visual Studio Package z okienkiem konfiguracji. Robimy to za pomocą dodania atrybutu do klasy dziedziczącej z Package:

[ProvideOptionPage(typeof(OptionPage), Consts.PluginName, Consts.OptionsCategoryBasicName, 0, 0, true)]

Stworzona klasa OptionPage (dziedzicząca po DialogPage) będzie podczepiona pod drzewko opcji w konfiguracji IDE (Consts.PluginName to korzeń, a jest nazwą liścia Consts.OptionsCategoryBasicName). Efekt mamy następujący:

Odczyt danych z okienka opcji

Jak odczytywać aktualne dane z okienka konfiguracji IDE? Robimy to w następujący sposób:

((OptionPage)GetDialogPage(typeof(OptionPage))).AutostartPomodoroStatusBar;

GetDialogPage jest metodą w klasie dziedziczącej po Package. W ten sposób z okienka, które powstała poprzez stworzenie klasy OptionPage, odczytujemy zmienną AutostartPomodoroStatusBar.

W tak dość nieskomplikowany sposób otrzymaliśmy proste okienko konfiguracyjne w IDE.

Źródła dostępne są na GitHubie (branch master i POC):

https://github.com/djfoxer/healthyWithVS/

 

windows oprogramowanie programowanie

Komentarze

0 nowych
Nikt nie napisał jeszcze komentarza, możesz być pierwszy!

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłaś naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.