2021-04-18 11:21:01

Co nowego w CLion 2021

CLion 2021 usprawnia analizę kodu dzięki aktualizacji Data Flow Analysis, rozszerzeniu wsparcia MISRA i integracji z Clazy dla projektów Qt. W debugerze GDB i LLDB oferują już takie same funkcjonalności dla debugowania Core Dump. Tryb zdalny ma natomiast szerszy zakres możliwości i działa konsekwentnie w wielu modelach projektów.

Data Flow Analysis

Moduł Data Flow Analysis śledzi dane w Twoim kodzie i wykrywa potencjalne problemy na podstawie własnej analizy. Oprócz lokalnego DFA (działającego w obrębie pojedynczej funkcji), CLion 2021.1 zawiera globalne DFA (traktujące całą jednostkę tłumaczeniową programu jako pojedynczą jednostkę do analizy). Globalny DFA nie tylko wzbogaca już istniejące kontrole, ale dodaje także kilka nowych, unikalnych inspekcji.

Usprawnianie lokalnej analizy globalnym DFA

Lista obecnych inspekcji opartych na DFA, które korzystają z globalnego DFA, zawiera:

  • Dangling pointers – wykrywa wskaźniki, które mogą wskazywać na już usuniętą pamięć.
  • Null dereference – wykrywa dereferencję wskaźników, które mogą zawierać nullptr.
  • Endless loops oraz Infinite recursion (nieskończone pętle i nieskończona rekurencja).
  • Constant conditions – wykrywa możliwe warunki, które są zawsze prawdziwe lub fałszywe.
  • Unreachable code oraz Unused values (nieosiągalny kod i nieużywane wartości).
  • Escape analysis – wykrywa zmienne zawierające odwołania do zmiennych lokalnych, które wychodzą poza swój zakres.

 

Nowe kontrole globalnego DFA

Dodano kilka nowych inspekcji, które mają sens tylko przy analizie globalnej - uruchamianiu DFA na całej jednostce tłumaczeniowej programu:

  • Constant function result – raportuje funkcje, których zwracana wartość wydaje się być zawsze tą samą stałą.
  • Constant parameter –  raportuje funkcje, których parametr wydaje się być zawsze tą samą stałą.
  • Unreachable function calls – wykrywa funkcje, których miejsca wywołania nigdy nie są wykonywane.

 

Usprawnienia wydajności

CLion 2021.1 optymalizuje również wiele procesów w DFA. Pomiary wydajności m.in. na projektach Postgres, Eigen i Clangd pokazują, że ogólna wydajność jest dobra, a niektóre parametry uległy poprawie (np. liczba plików, w których wykonanie DFA zostało przerwane przez CLion z powodu przekroczenia limitu czasu).

 

Analiza dynamiczna

Pokrycie rozgałęzień

Oprócz pokrycia linii, CLion 2021.1 może teraz również obliczać pokrycie gałęzi. Metoda ta bierze pod uwagę wszystkie gałęzie każdej struktury kontrolnej. Uruchom aplikację CMake lub testy z pokryciem i sprawdź nową kolumnę, która została dodana do okna narzędzia Coverage.

Nowa metoda jest domyślnie włączona i może być dostosowana w Settings | Build, Execution, Deployment | Coverage. Działa wyłącznie z GCC/gcov lub LLVM/llvm-cov wersji 12.0.0 lub wyższej.

Analiza dynamiczna w trybie zdalnym

W celu osiągnięcia spójności funkcji we wszystkich narzędziach, modelach projektów i konfiguracjach, CLion 2021.1 umożliwia w Google Sanitizers, Valgrind Memcheck i Code Coverage pracę ze zdalnymi narzędziami.

 

Kontrole MISRA C i C++

CLion 2021.1 dodaje więcej testów z MISRA C 2012 i MISRA C++ 2008. Pełna lista jest dostępna w przestrzeni Confluence i pozwala na łatwe śledzenie postępu prac.

 

Uzupełnianie wyrażeń Postfix w C i C++

Uzupełnianie kodu Postfix dla C i C++ pozwala na dodanie kodu wokół wpisanego właśnie wyrażenia. Może on otoczyć wyrażenie często używaną konstrukcją językową lub przekazać wyrażenie jako pierwszy argument wolnej funkcji.

Otocz wyrażenie konstrukcją językową

Szablony Postfix mogą być pomocne przy typowych konstrukcjach językowych. Wpisz wyrażenie, następnie kropkę, a potem dodaj skrót szablonu Postfix i naciśnij klawisz rozwijania lub wybierz żądany szablon z wyświetlonej listy pomocniczej. Rozszerzony szablon otoczy podane wyrażenie. Pełna lista szablonów znajduje się w Settings | Editor | General | Postfix Completion.

Przekaż wyrażenie do wolnej funkcji

Użyj uzupełniania kodu Postfix, aby przekazać wyrażenie, które właśnie wpisałeś do wolnej funkcji jako pierwszy argument. Wpisz wyrażenie, następnie kropkę i wybierz wolną funkcję z listy uzupełniania.

 

Usprawnienia dla projektów Makefile

Wstępne wsparcie dla zdalnych projektów Makefile

CLion 2021.1 umożliwia pracę z projektami Makefile na zdalnej maszynie. Wystarczy zmienić narzędzie w ustawieniach pliku Makefile na zdalne, a następnie ponownie załadować projekt, by został zsynchronizowany ze zdalną maszyną. Kompiluj, uruchamiaj i debuguj swoją aplikację zdalnie z lokalnie działającego CLiona.

Plugin Makefile Language

Plugin Makefile Language jest teraz zarządzany przez zespół CLion i jest zawarty w oprogramowaniu. Wtyczka udostępnia podświetlanie składni, szybką dokumentację oraz wiele funkcji nawigacji i uzupełniania kodu dla Makefile.

 

Usprawnienia projektów CMake

Udostępniaj profile CMake w VCS

Ustawienia profilów CMake są w CLionie są teraz przechowywane w pliku cmake.xml w folderze .idea. Mogą być udostępnianie w VCS wraz z projektem. W tym celu wybierz funkcję Share znajdującą się w Settings | Build, Execution, Deployment | Cmake.

CLion 2021.1 zawiera pakiet CMake 3.19. Oprócz innych zmian, które wprowadza, jest to pierwsza wersja CMake obsługująca Apple Silicon (układ M1).

Funkcje CMake 3.19 dla CUDA są teraz obsługiwane w CLionie, co obejmuje autouzupełnianie dla kilku nowych zmiennych Cmake.

 

Usprawnienia projektów Qt

Integracja Clazy

Clazy w wersji 1.8, statyczny analizator kodu zorientowany na Qt, jest teraz zintegrowany z silnikiem CLiona opartym na Clangd. Kontrole są wyświetlane w edytorze. Dostępne są także szybkie poprawki.

Użytkownicy mogą skonfigurować poziom sprawdzania Clazy, przechodząc do Settings | Editor | Inspections | C/C++ | General | Clazy.

Mapa klawiszy QtCreator

CLion zawiera teraz mapę klawiszy QtCreator dla osób, które korzystały w tym narzędziu z funkcji przypisania klawiszy. Możesz się na nią przełączyć w ustawieniach lub poprzez szybkie przełączenie schematu (Ctrl+’).

 

Debugger

Funkcja Set Execution Point w dezasemblacji

Wykonanie akcji Set Execution Point pozwala przeskoczyć do dowolnego wiersza kodu w edytorze podczas sesji debugowania i ustawić tam punkt wykonania, pomijając wszystkie inne polecenia pomiędzy nimi. Działa ona teraz w widoku dezasemblacji, więc można przesuwać punkt wykonania podczas przechodzenia przez kod.

Debugowanie zrzutów rdzeni

Podczas debugowania zrzutów rdzeni w CLionie 2021.1 użytkownicy mogą teraz ustawić sysroot w konfiguracji uruchamiania. Pomoże to zlokalizować symbole biblioteki podczas debugowania zrzutów rdzeni z binarek utworzonych na innych systemach.

Ustawienie plików symboli podczas debugowania zrzutu rdzenia dla niesymbolizowanych binarek za pomocą LLDB dostarcza teraz także niezbędnych informacji o symbolach do CLiona. Dzięki tej poprawce, GDB i LLDB mają takie same funkcje dla debugowania zrzutów rdzeniowych w CLionie.

 

Zdalny terminal

Nowa akcja w Tools | Open Remote Host Terminal otwiera folder projektu na maszynie zdalnej, jeżeli jest ona dostępna. Zdalny host odpowiada zdalnemu profilowi, który jest aktualnie wybrany, lub jeśli wybrany jest lokalny, pierwszemu zdalnemu profilowi znalezionemu w projekcie.

Widok projektu

Pliki źródłowe znajdujące się poza głównym obszarem projektu są teraz zgrupowane w węźle External Sources na drzewku projektu. Dzięki temu widok jest nieprzepełniony i bardziej przejrzysty.

 

VCS

Profile dla inspekcji pre-commit

CLion może sprawdzić Twój kod przed jego commitem, aby upewnić się, że nie ma w nim błędów. Wybierz profil inspekcji kodu przed wysłaniem zmian do VCS - kliknij ikonę koła zębatego, aby wyświetlić opcje commitu, zaznacz checkbox Analyze code, kliknij Choose profile i wybierz żądany profil.

Szablony Git commit

Możesz stworzyć niestandardowy szablon wiadomości commit w Git, a CLion wyświetli ten tekst jako początkową wiadomość commit.

Funkcja Save to Shelf

Nowa akcja Save to Shelf pozwala na skopiowanie zmian do Shelfa, zachowując je w zmianach lokalnych. Funkcję możesz aktywować, naciskając kombinację klawiszy Ctrl+Shift+A i wpisując „Save to Shelf”.

 

Aktualizacja pluginu Rust

IntelliJ Rust oferuje teraz uporządkowany widok dla danych wyjściowych kompilatora. Zakładka ta otwiera się automatycznie w oknie narzędzia Build, gdy wywołasz polecenie Cargo zawierające krok kompilacji. Funkcja działa z Cargo w wersji 1.48.0 lub nowszej.

Kolejną znaczącą aktualizacją jest nowa refaktoryzacja Change Signature. Pomaga ona modyfikować sygnaturę funkcji/metody, wpływając na wszystkie odwołania. Można szybko zmienić nazwę funkcji lub zwracany typ, zmienić kolejność lub dodać/usunąć parametry, a także dodać przedrostek async lub unsafe.

Refaktoryzacja przez zmianę nazwy daje teraz sugestie zmiany nazwy dla elementów takich jak struktury, funkcje i zmienne lokalne po zmianie nazwy w edytorze.

Ulepszono też wsparcie dla kompilacji warunkowej. Funkcja Find Usages jest teraz dostępna dla funkcjonalności Cargo, a uzupełnianie działa dla argumentu feature w atrybutach cfg i cfg_attr. Ponadto, jeśli wewnątrz cfg_attr zagnieżdżone są atrybuty, wtyczka bierze to pod uwagę podczas rozwiązywania nazw i analizy kodu.

 

Code With Me

Code With Me, nowa usługa JetBrains do wspólnej pracy nad projektem i programowania w parach, jest teraz dołączona do CLion.

Możesz w niej np. ustalać odpowiedni poziom dostępu do projektu i udostępniać odnośnik do niego użytkownikom zewnętrznym (gościom). Odbiorca nie musi nawet instalować własnego IDE, by współtworzyć kod. Dla łatwiejszej współpracy, platforma oferuje czat tekstowy, a nawet rozmowy audio i wideo.

 

Integracja pluginu Space

Plugin Space jest już dostępny w CLionie. Możesz połączyć się ze swoją organizacją w JetBrain Space poprzez funkcję Get from VCS, zlokalizowaną od razu na ekranie powitalnym. Po zalogowaniu możesz przeglądać i kopiować repozytoria projektu, oceniać kod Twoich współpracowników i tworzyć skrypty Space Automation.

 

Inne usprawnienia

  • CLion będzie teraz automatycznie stosować motyw wysokiego kontrastu przy pierwszym uruchomieniu IDE, jeśli używasz trybu wysokiego kontrastu w systemie Windows.
  • Dzięki nowym ustawieniom czcionek możesz dostosować grubość czcionki głównej i pogrubionej w ustawieniach: Settings | Editor | Fonts.
  • Kiedy otwartych jest kilka zakładek na podzielonym ekranie, możesz dwukrotnie kliknąć na którąkolwiek z nich, aby zmaksymalizować okno edytora dla tej konkretnej zakładki. Aby przywrócić okno do pierwotnego rozmiaru, wystarczy ponownie dwukrotnie je kliknąć.

 

Podziel się:
Opinie klientów zobacz: wszystkie opinie

Twoja opinia może być pierwsza.

Pokazuje 0-0 z 0 opinii
Uwaga!
* pola wymagane Dodaj opinię