GoLand 2022.3 Beta


GoLand 2022.3 Beta jest już dostępny! Nowe funkcje nie będą już dodawane, a działania skupią się na naprawianiu błędów i przygotowaniu GoLand do wydania głównej wersji na początku grudnia.

Poprawy wydajności

Zmiany w „go list” w celu zoptymalizowania indeksowania

Po otwarciu projektu GoLand indeksuje pliki i uruchamia polecenie go list, które podaje informacje o strukturze projektu. Indeksowanie jest wstrzymywane podczas działania go list jak i nie ma dostępu do funkcji analizy kodu, dopóki indeksowanie nie zostanie zakończone.

Wcześniej GoLand w niektórych przypadkach uruchamiał go list dwukrotnie. Zmieniono API i udało się zmniejszyć liczbę uruchomień go list. Ta zmiana powinna znacząco poprawić wydajność dużych projektów z dużą ilością modułów.

Przywracanie struktury projektu z pamięci podręcznej po otwarciu

Teraz, kiedy projekt jest otwierany, informacje raportowane przez go list są zapisywane na dysku w pamięci podręcznej. Po ponownym otwarciu tego projektu dane dotyczące struktury projektu są ładowane z pamięci i uwzględniane podczas rozpoczynania indeksowania.

Dzięki temu indeksowanie przebiega bez przerw i kończy się szybciej. go list wciąż wymaga uruchomienia, ale działa w tle. W wyniku tych zmian funkcje wglądu w kod są dostępne znacznie wcześniej po otwarciu projektu.

Szybsze uruchamianie IDE i otwieranie projektów

GoLand otrzymał szereg innych ulepszeń wydajności zaprojektowanych w celu skrócenia czasu uruchamiania aplikacji i otwartych projektów w środowiskach JetBrains IDE.

Niektóre procesy, które działały sekwencyjnie, zostały zrównoleglone. Udało się również zredukować czas ładowania klas i zaoszczędzić sporo czasu na działaniach intencjonalnych, inspekcjach, niektórych stałych i innych rozszerzeniach, które były wcześniej ładowane i niepotrzebnie inicjowane.

Prawie wszystkie komponenty projektu w dołączonych wtyczkach zostały wyeliminowane. W rezultacie ogólna wydajność uruchamiania – w tym przywracanie edytora – została poprawiona o około 30%.

Generyki

Generowanie testów dla funkcji ogólnych

Można teraz generować testy funkcji z parametrami ogólnymi.

Szybka poprawka do pisania wielkimi literami w parametrach

Została utworzona nowa inspekcja, która wykrywa parametry pisane małymi literami, a także szybka poprawka, aby były one pisane wielkimi literami.

Obszar roboczy Go

Akcja Przejdź do pliku obszaru roboczego

W nowym menu kontekstowym znajduje się teraz akcja Idź do pliku obszaru roboczego. Po wybraniu w folderze głównym pojawi się plik go.work. Istniejące moduły Go zostaną automatycznie dodane do pliku go.work.

Generowanie go.work za pomocą dyrektyw replace

Można teraz wygenerować go.work z go.mod, jeśli są tam dyrektywy zastępujące. Należy umieścić kursor na dyrektywie zamień, nacisnąć Alt+Enter (⌥ ⏎), aby zobaczyć wszystkie dostępne akcje intencji, a następnie wybrać opcję Generuj „go.work” za pomocą dyrektyw „zamień”.

Komentarze w dokumentacji Go

W wersji 1.19 dodano obsługę linków, list i nowych nagłówków w komentarzach do dokumentów. Teraz GoLand obsługuje również te nowe funkcje.

Wsparcie dla linków

Dodano odnośniki do linków do dokumentów w GoLand. Kliknięcie na nie prowadzi do elementu odniesienia, a kliknięcie na link tekstowy prowadzi do definicji linku tekstowego.

Zarówno łącza tekstowe, jak i do dokumentów są renderowane jako łącza w wyskakującym okienku Szybka dokumentacja i oknie narzędzia Dokumentacja.

Wsparcie dla nowych nagłówków

Począwszy od Go 1.19, nagłówek to wiersz rozpoczynający się znakiem liczby (#), po którym następuje spacja i tekst nagłówka. Wcześniej nagłówki były identyfikowane „domyślnie przez akapity jednowierszowe spełniające określone warunki, w szczególności brak jakiejkolwiek interpunkcji kończącej”.

Nowe nagłówki są renderowane jako nagłówki HTML w wyskakującym okienku Szybka dokumentacja GoLand oraz w oknie narzędzia Dokumentacja.

Wsparcie dla list

Element listy składa się z gwiazdki, plusa, myślnika lub punktora Unicode, po których następuje spacja lub tabulator, a następnie tekst. Listy są renderowane jako listy HTML w wyskakującym okienku Szybka dokumentacja GoLand oraz w oknie narzędzia Dokumentacja.

Zintegrowany plac zabaw Go

Zintegrowano funkcjonalność Go Playground w GoLand.

Można zaznaczyć fragment kodu, wybrać opcję Otwórz w, a następnie kliknąć Plac zabaw. Spowoduje to otwarcie pliku scratch z paskiem narzędzi, który zawiera te same opcje, które są dostępne podczas korzystania z Go Playground.

Można sformatować i udostępnić swój kod, zmienić wersję Go, uruchomić kod za pomocą serwera placu zabaw Go lub uruchomić go lokalnie.

Nowe szybkie poprawki

Szybka poprawka dla nieprawidłowego typu rekurencyjnego

Jeśli dany typ zawiera sam siebie, zwracany jest błąd „Nieprawidłowy typ rekurencyjny”. Aby tego uniknąć, powinno się dołączać wskaźnik do typu, a nie do samego typu. Teraz istnieje szybka poprawka to poprawiająca.

Edytor

Wygląd kodu

Rozpoczęto wdrażanie funkcji Code vision. Na razie wyświetlani są autorowie kodu, jeśli włączona jest integracja kontroli wersji. Kliknięcie nazwiska autora kodu, otworzy pasek boczny Komantarz z adnotacją Git, pozwalając zobaczyć, kto wprowadził różne zmiany.

W kolejnych krokach implementacji tej funkcji wprowadzono użycia wyświetlane przy wszystkich funkcjach i typach, które pokazują, ile razy funkcja lub typ jest przywoływany w bieżącym projekcie. Planowane jest również pokazywać w ten sposób implementacje i wszystkie kompatybilne interfejsy.

Podpowiedzi dla stałych definicji

GoLand wyświetla teraz podpowiedzi dla bloków o stałej definicji. Powinno to być szczególnie przydatne w blokach stałych wywodzących się z iota, gdzie podpowiedzi pokazują wartości iota powiązane z każdą pozycją.

Automatycznie generowane pola protobuf są ignorowane dla opcji Wypełnij wszystkie pola

Środowisko IDE ignoruje teraz automatycznie generowane pola bufora protokołu, które zaczynają się od XXX_ po wywołaniu działania Wypełnij wszystkie pola. Te pola są wyświetlane dopiero po wywołaniu uzupełniania po raz drugi.

Inne funkcjonalności związane z Go

Zmienne środowiskowe Go wyświetlane w ustawieniach

GoLand teraz automatycznie pobiera zmienne systemowe związane z modułami Go i wyświetla je w oknie dialogowym Zmienne środowiskowe. Aby otworzyć to okno, należy przejść do Preferencje/Ustawienia | Idź | Przejdź do modułów i kliknąć ikonę Edytuj zmienne środowiskowe.

Nazwy pakietów zawsze pokazywane w Szybkiej dokumentacji

IDE teraz zawsze pokazuje nazwy pakietów w wyskakującym okienku szybkiej dokumentacji dla deklaracji najwyższego poziomu. Wcześniej nagłówki pakietów były pokazywane tylko wtedy, gdy znaleziono pliki doc.go lub .go.

Nazwy odbiorców są różne, inspekcja ignoruje wygenerowany kod

Ponieważ inspekcja nazwy odbiorców różnią się, nie ma znaczenia dla wygenerowanego kodu, wyłączono ją dla plików zawierających komentarz pasujący do następującego wyrażenia regularnego:
^// Kod wygenerowany .* NIE EDYTUJ.$

Zwiększony limit rozmiaru pliku

Podnieśiono limit rozmiaru pliku z 2,5 MB do 10 MB. Funkcje analizy kodu, takie jak nawigacja i wyróżnianie, nie działają w przypadku plików, które przekraczają limit rozmiaru. Chociaż limit 2,5 MB wystarczył dla większości plików, są projekty z plikami większymi niż ten – na przykład AWS SDK lub GCP.

Klient HTTP

Skrypty żądań wstępnych i nowe interfejsy API dla modułów obsługi JavaScript

Klient HTTP obsługuje teraz wykonywanie bloków skryptów przed żądaniami. Można wygenerować pewne dane przed wykonaniem żądania i umieścić je w końcowym żądaniu za pomocą zmiennych. Dostępna jest szybka poprawka, która utworzy standardowy kod do inicjowania zmiennych.

Klient HTTP obsługuje teraz Crypto API. Można obliczyć wartości skrótu md5 lub sha1 dla żądań HTTP.

W prostych przypadkach IDE zawiera teraz nowy zestaw zmiennych losowych.

Ulepszenia stylu kodu

Klient HTTP zapewnia teraz lepsze opcje formatowania dla żądań z długimi adresami URL. Można użyć akcji Umieść parametry zapytania w oddzielnych wierszach, aby podzielić zapytanie na mniejsze fragmenty w różnych wierszach.

Docker

Wykonywalne z WSL bez Docker desktop

GoLand obsługuje teraz połączenia z platformą Docker, które działają w podsystemie Windows dla systemu Linux (WSL). Można ustawić takie połączenie w Ustawienia/Preferencje | Kompilacja, wykonanie, wdrażanie | Doker.

Nowa akcja intencji: Pociągnij obraz

Istnieje teraz łatwy sposób na pobranie wymaganego obrazu bez konieczności uruchamiania go z pliku Dockerfile lub docker-compose.yml. Wystarczy wywołać działania kontekstowe (Alt+Enter / ⌥⏎) na podświetlonej nazwie obrazu, a następnie wybrać opcję Pull Docker image.

Obsługa typu pliku .dockerignore

Wprowadzono pełną obsługę plików .dockerignore, w tym podświetlanie i uzupełnianie kodu. Te pliki są teraz brane pod uwagę podczas budowania obrazu z IDE.

Obsługa formatu heredoc w plikach Dockerfile

Dokumenty here umożliwiają przekierowanie kolejnych wierszy Dockerfile do wejścia poleceń RUN lub COPY. GoLand obsługuje teraz tę składnię, więc można jej używać do generowania plików konfiguracyjnych lub skryptów wielowierszowych bezpośrednio w plikach Dockerfile.

Połączenia Dockera z kontekstów Docker

Można teraz skonfigurować dodatkowe połączenia Dockera za pomocą kontekstów Dockera, jeśli są już takie ustawienia w konfiguracji Dockera. Można to zrobić, wywołując menu kontekstowe Dodaj usługę w widoku Usługi i wybierając opcję Połączenia platformy Docker z kontekstów platformy Docker.

Interfejs użytkownika

Dostępny nowy interfejs użytkownika

W maju ogłoszono zamknięty program podglądu nowego interfejsu użytkownika w JetBrains IDE.

Można się przełączyć na nowy interfejs użytkownika w Ustawienia/Preferencje | Wygląd i zachowanie | Podgląd nowego interfejsu użytkownika, a następnie przetestować go i podzielić się z twórcami swoimi przemyśleniami na temat tej zmiany.

Podgląd akcji intencji włączony domyślnie

Funkcja podglądu działań intencjonalnych jest teraz domyślnie włączona, dzięki czemu można natychmiast zobaczyć, jak dany kod zostanie zmieniony po zastosowaniu sugestii IDE.

Nadal można wyłączyć funkcję podglądu, naciskając F1 / Ctrl + Q, gdy lista działań intencji jest otwarta, i pozostanie wyłączona, dopóki nie zostanie włączona ponownie w ten sam sposób.

Dokowanie okna narzędzi do pływających kart edytora

Aby ułatwić organizowanie przestrzeni roboczej i interakcję z GoLandem na wielu monitorach, zaimplementowano opcję przeciągania okien narzędzi z głównego okna i dokowania ich do pływających zakładek edytora.

Ulepszone porady dnia

Udoskonalono funkcję Porady dnia – narzędzie do nauki, które pomaga odkrywać GoLand.

Każda wskazówka ma teraz nagłówek. Dopracowano również algorytm, który określa, które wskazówki się pojawiają, dzięki czemu wyświetlane są głównie te, które są najbardziej odpowiednie dla danego doświadczenia z IDE i projektem.

Zaktualizowane zakładki

Ponownie możliwe jest dodawanie zakładek do plików z zakładek edytora. Wystarczy kliknąć kartę prawym przyciskiem myszy, aby wywołać menu kontekstowe i wybrać Zakładki.

Co więcej, można dodać wszystkie pliki ze wszystkich aktualnie otwartych zakładek do zakładek. Aby to zrobić, należy wywołać to samo menu kontekstowe i wybrać opcję Zakładkuj otwarte karty lub wywołać tę akcję za pomocą ikony (trzy kropki) znajdującej się po prawej stronie panelu kart edytora.

Nowe rozwiązanie synchronizacji ustawień

Wprowadzono przerobione rozwiązanie do synchronizacji niestandardowych ustawień użytkownika. Przez dość długi czas istniały dwie wtyczki, które istniały równolegle i miały przecinające się funkcje – IDE Settings Sync i Settings Repository. Aby uniknąć zamieszania spowodowanego posiadaniem dwóch podobnych dołączonych wtyczek, połączono ich zestawy funkcji w jedno rozwiązanie – nową wtyczkę Settings Sync.

Bazy danych

Wsparcie Redis

Zaimplementowano wstępną iterację długo oczekiwanego wsparcia dla Redis.

Szybki filtr

Teraz, korzystając z szybkiego wyszukiwania, istnieje również możliwość filtrowania obiektów. Wszystkie niepasujące obiekty zostaną ukryte.

Tworzenie stron internetowych

Wygląd kodu dla JavaScript i TypeScript

Ta wersja wprowadza nową funkcję Code Vision do tworzenia stron internetowych. Zbiera różne metryki dla typów i członków typu w kodzie JavaScript i TypeScript a następnie wyświetla te informacje w pobliżu ich deklaracji.

Inne ulepszenia

Ulepszenia edycji w YAML

Wprowadzono nową szybką poprawkę, która pomija inspekcje z komentarzem w plikach YAML, w tym plikach Kubernetes, specyfikacjach OpenAPI i plikach docker-compose.yml.

Dodano również opcję składania komentarzy wielowierszowych, które tworzą blok składający się z 3 lub więcej wierszy i zaczynają się od

Instalatory dla Windows ARM64

Rozpoczęto dystrybucję instalatorów dla Windows ARM64. Można je już pobrać z strony internetowej lub z aplikacji Toolbox.