Automatyczne tworzenie propertiesów do bindowania - chwalę się

1

Hej, jakiś czas temu ktoś (nie pamiętam kto) chwalił się, że zrobił plugin, który fajnie tworzy propertisy do bindowania (NotifyPropertyChanged). Autor powiedział, że kiedyś gdzieś tam udostępni.
Niestety nie śledziłem tego wątku, więc nie wiem, czy coś się tam zmieniło w tej kwestii. W każdym razie ostatnio bardzo mocno potrzebuję takiego pluginu, a że jeszcze żadnego nigdy nie pisałem do Visuala, postanowiłem to zmienić :)

Przedstawiam Wam pierwszą wersję NerdX: https://nerdolando-my.sharepoint.com/:u:/g/personal/admin_nerdolando_onmicrosoft_com/EbPtXCX28ttKm0xnSD9XGLEB5sy4ca9zM-TR5FYWB8OKDA?e=Yt2wQv

Po zainstalowaniu, plugin automatycznie wczytuje się po uruchomieniu jakiejś solucji.

Jeśli mamy jakieś pole, np:

string strField;

albo właściwość automatyczną:

public string StrField {get; set;}

wystarczy ustawić się kursorem w linii deklaracji i wcisnąć: CTRL+K, CTRL+Y (ewentualnie prawy klawisz myszy i stamtąd: NerdX->Create notifiable property)

Plugin stworzy wtedy pełną właściwość, np:

string strField;
public string StrField
{
  get {return strField;}
  set
  {
    if(strField != value)
    {
        strField = value;
        NotifyPropertyChanged();
    }
  }
}

Można zrobić też to hurtem. Tzn. zaznaczyć kilka takich pól i/lub właściwości automatycznych, i też to zadziała.

Ustawienia pluginu są dostępne z poziomu okna ustawień Visual Studio - w gałęzi NerdX.
Ustawić można:

  • nazwę metody do wywołania (np. NotifyPropertyChanged)
  • prefix i suffix tworzonego pola (dzięki temu można mieć nazwę pola w stylu: m_ageField, a nazwę właściwości: Age)
  • czy nazwa właściwości ma się pojawić w parametrze wywoływanej metody (np: NotifyPropertyChanged("Age") zamiast NotifyPropertyChanged()) - przydatne, jeśli nasze NotifyPropertyChanged nie używa atrybutu CallerMemberName
  • czy modyfikator PRIVATE ma być widoczny przy definicji pola, czy nie - to już tylko styl kodowania. Może być: "private string strField" lub po prostu: "string strField". Oczywiście plugin bierze pod uwagę wpisane przez użytkownika modyfikatory dostępu. Jeśli np. zmieniamy pole:
protected internal string strField;

to po utworzeniu właściwości, ono cały czas będzie miało takie same specyfikatory.
Chcę to wrzucić do pobrania przez marketplace, jednak najpierw chciałbym, żebyście się wypowiedzieli, czy wszystko jest ok, czy są może jakieś problemy.

UPDATE 22.11.2018

  • optymalizacja
  • poprawiona obsługa UNDO
  • poprawione formatowanie kodu

Zapraszam do pobierania: https://nerdolando-my.sharepoint.com/:u:/g/personal/admin_nerdolando_onmicrosoft_com/EbPtXCX28ttKm0xnSD9XGLEB5sy4ca9zM-TR5FYWB8OKDA?e=Yt2wQv

0

Pytanie do osób, które zainstalowały ten plugin.
Czy możecie wejść do okna Extensions and Updates? Bo ja dostaję u siebie błąd: "Illegal characters in path" i nie wiem, czy to VS się spieprzył, czy to wina mojego rozszerzenia. Możecie sprawdzić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1