2012-09-10 7 views
24

Czy można utworzyć fragment kodu lub coś podobnego do automatyzacji procesu generowania i wstawiania identyfikatorów GUID do edytora tekstów w programie Visual Studio 2012? Często potrzebuję generować nowe identyfikatory GUID (na przykład instalator WiX, a także nasz własny wewnętrzny framework).Włóż nowy identyfikator GUID do programu Visual Studio 2012

Użyłem makra, aby wykonać to zadanie, tworząc nowy identyfikator GUID, a następnie wstawiając go do bieżącego ActiveDocument. Chciałbym powiązać makro z Shift-Ctrl G, więc mogłem szybko wstawić nowy identyfikator bez konieczności uruchamiania narzędzia Create Guid i kopiowania z niego.

Funkcja makr została usunięta z Visual Studio 2012, więc potrzebuję alternatywnej metody, zakładam, że można to zrobić za pomocą rozszerzenia, ale nie jestem obeznany z rozwijaniem rozszerzeń i to podejście wydaje się być trochę ciężkie!

Wszelkie sugestie byłyby doceniane, gdyby nie to, wskazany byłby wskaźnik przy jakiejkolwiek informacji, jakiego rodzaju rozszerzenie wymagałoby interakcji z oknem tekstowym i wstawienie tekstu. Mógłbym wtedy utworzyć rozszerzenie i opublikować go w Galerii Visual Studio.

Dzięki Anthony

Edytuj, aby dodać - cokolwiek rozwiązanie proponuje musiałaby być „wyzwalać” ze skrótu klawiaturowego. Jak napisałem powyżej, przywiązałem makro do Ctrl Shift G, ponieważ było to łatwe do zapamiętania i naciśnięcia podczas pisania kodu.

+0

Delphi 6 ma to wbudowane przez Ctrl + Alt + Shift + G ... – cja

Odpowiedz

39

Możesz napisać rozszerzenie Visual Studio 2012, aby to osiągnąć!
Jeśli nigdy wcześniej nie pisałeś dodatku, jest to prosty sposób na rozpoczęcie pracy!

Oto kroki do stworzenia tego rodzaju dodatek:

  1. Tworzenie New Project w Visual Studio 2012
  2. Wybierz Szablony ->Inne typy projektów ->Rozszerzalność -> Visual Studio Add-in
  3. Nazwij projekt, kliknij OK.
  4. Postępuj zgodnie z instrukcjami kreatora dodawania. Po wyświetleniu monitu zaznacz pole wyboru: "Tak, utwórz element menu" Narzędzia "." Opcjonalnie, ja też sprawdzić "My Add-in nie zniosą modalne UI ..."
  5. Zakończ kreatora i implementacja kodu podążać Exec (...)

    public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled) 
    { 
        handled = false; 
        if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault) 
        { 
         if (commandName == this.GetType().Namespace + ".Connect." + this.GetType().Namespace) 
         { 
          if (_applicationObject.ActiveDocument != null) 
          { 
           TextSelection objSel = (EnvDTE.TextSelection)(_applicationObject.ActiveDocument.Selection); 
    
           objSel.Insert(Guid.NewGuid().ToString()); 
          } 
    
          handled = true; 
          return; 
         } 
        } 
    } 
    
  6. Zbuduj projekt i wdrożenie AddInName.dll, AddInName.AddIn i AddInName.xml do C: \ Users \ nazwa_użytkownika \ Documents \ Visual Studio 2012 \ Addins.[Jeśli folder Addins nie istnieje, utwórz go]

  7. W Visual Studio 2012, pod Narzędzia ->Addin Menedżer, zaznacz pole po lewej stronie obok AddInName.
  8. Restart Visual Studio 2012
  9. Powinieneś teraz zobaczyć AddInName uszeregowane pod Tools. [prawdopodobnie z Smiley face!]
  10. Po kliknięciu na to, powinien wstawić nowy GUID w miejscu twojego kursora.
  11. mapie do skrótu, przechodząc do Narzędzia ->Opcje ->Środowisko ->Klawiatura, szukaj AddInName i wiążą skrótu do niego.

Voila! Generowanie identyfikatora GUI skrótu i ​​trochę wtyczki Visual Studio. :)

+0

To jest dokładnie to, co chciałem wiedzieć! Nie bałam się pisania rozszerzenia, po prostu nie byłam pewna, czego dokładnie potrzebowałam. Dokumentacja rozszerzeń wydaje się dużym brakiem (lub po prostu nie znalazłem). Poza tym pojawi się sporo różnych smaków dodatków, niektóre bardziej zniechęcające niż inne. Dzięki za pomoc! – Anthony

+3

Na wypadek, gdyby ktoś znalazł to pytanie/odpowiedź szukając podobnej rzeczy, stworzyłem projekt GitHub, który robi dokładnie to, co jest w tej odpowiedzi. Można go pobrać z https://github.com/antwilliams/VsGuidGenerator lub pobrać plik binarny z https://github.com/downloads/antwilliams/VsGuidGenerator/VsGuidGenerator-3673852d.zip. Brak gwarancji udzielonych w jakikolwiek sposób, kształcie lub formie. – Anthony

+9

Istnieje już przedłużenie versus GuidInserter2. Możesz go znaleźć tutaj [GuidInserter] (http://visualstudiogallery.msdn.microsoft.com/270f94f9-4631-4d95-8407-7954acd11bd7?SRC=VSIDE). Możesz użyć skrótu Ctl + K + J – cleftheris

52

ReSharper pozwala wstawić nowy Guid, wpisując "nguid" i naciskając kartę.

Oczywiście jest to odrobina po drogiej stronie tylko po to, by wygenerować Guida, jednak ReSharper ma wiele innych przydatnych funkcji, które mogą być warte rozważenia.

+3

Hmmm, czy mogę nagrodzić połowę kleszczy za tę odpowiedź !? ;) Mam związek miłości/nienawiści z ReSharper, za każdym razem, gdy próbowałem go, skończyłem instalowanie go za zainkasowanie mojego kodu. Jestem pewien, że mogę skonfigurować ustawienia dokładnie tak, jak chcę, ale zawsze wydaje się to zbyt dużym wysiłkiem! Poza tym, interesujące jest, że ta funkcja jest zawarta w ReSharper, a ja dam mu jeszcze raz! Chciałbym wiedzieć, czy istnieją inne alternatywy, ponieważ ReSharper do generowania nowych identyfikatorów GUID jest podobny do używania bomby termojądrowej do złamania nakrętki! – Anthony

+1

Rozglądałem się i zdarzyło mi się przewinąć wystarczająco daleko w dół. Niesamowity! Nigdy bym nie zdawał sobie sprawy, że ma tę funkcjonalność bez tej odpowiedzi>. < – al3xnull

+0

Chciałbym móc to powtórzyć dwa razy. Świetne rozwiązanie – Sam

0

Moje rozszerzenie SCLAssist ma tę funkcję. Możesz powiązać "Paste GUID" z mapowaniem klawiszy. SCLAssist jest bezpłatny.

0

Wygląda na to, że przyniósł go z powrotem - w VS 2015 (używam wersji Community) istnieje Narzędzia>GUID opcję Utwórz.