Ulepszenia CLion Nova, serwery debugowania, przeglądarka obrazów OpenCV i debugowanie Zephyr West w CLion 2024.3


CLion 2024.3 jest już dostępny. Najnowsza wersja JetBrains IDE dla języków C i C++ zawiera następujące kluczowe funkcje i aktualizacje:

  • Znaczne ulepszenia nowego silnika językowego, CLion Nova.
  • Nowa opcja konfiguracji Serwer Debugowania.
  • Przeglądarka obrazów OpenCV.
  • Możliwość dołączenia debuggera do nieuruchomionego procesu.
  • Wsparcie debugowania dla Zephyr West.

CLion Nova

W tym wydaniu nasz nowy silnik językowy, CLion Nova, otrzymał wiele ważnych ulepszeń, w tym różne aktualizacje specyficzne dla języka i interfejsu użytkownika oraz kilka optymalizacji wykorzystania pamięci. Zapewniliśmy również lepszą obsługę języka dla nowoczesnych funkcji C++.

Ponadto, aby uprościć przejście z CLion Classic do CLion Nova, dodaliśmy przełącznik do ekranu powitalnego i menu konfiguracji.

Zaproszenie do zgłaszania opinii na temat CLion Nova

Wydajność CLion Nova przewyższa teraz wydajność CLion Classic o jeszcze większy margines. Jest płynniejszy i bardziej responsywny, nawet w przypadku większych projektów z setkami tysięcy linii kodu. Dlatego też dodaliśmy jeszcze wygodniejsze sposoby przejścia na CLion Nova.

Zdajemy sobie jednak sprawę, że niektórzy użytkownicy CLion Classic nie są gotowi na zmianę. Zanim uczynimy CLion Nova domyślnym silnikiem dla wszystkich, chcielibyśmy zrozumieć, dlaczego niektórzy użytkownicy wolą CLion Classic od CLion Nova. Dlatego bylibyśmy wdzięczni za podzielenie się z nami swoimi opiniami poprzez Pomoc | Prześlij opinię… w głównym menu IDE. Dokładnie je przeanalizujemy i postaramy się rozwiązać wszelkie krytyczne problemy, które mogą uniemożliwić maksymalne wykorzystanie możliwości CLion Nova.

Ulepszenia wykorzystania pamięci

Różne ulepszenia znacznie zmniejszyły zużycie pamięci przez CLion Nova i poprawiły ogólną wydajność IDE. Jest to szczególnie zauważalne w przypadku dużych projektów, takich jak Chromium.

Na przykład, gdy porównaliśmy zużycie pamięci przez projekt Chromium w CLion Nova 2024.2 z tym samym projektem w wersji 2024.3, zauważyliśmy, że frontend IDE zużywał o 51% mniej pamięci w nowej wersji, a backend IDE o 15% mniej. Krótko mówiąc, oznacza to, że IDE stało się bardziej responsywne i szybsze do uruchomienia.

Hierarchia wywołań

Hierarchia wywołań funkcji jest teraz dostępna podczas korzystania z CLion Nova w oknie narzędzia Hierarchy. Wyświetla ona hierarchie wywołujących i wywołanych, wizualnie przedstawiając sposób interakcji funkcji i podświetlając wywołania rekurencyjne za pomocą odpowiedniej ikony.

Aby wyświetlić hierarchię wywołań funkcji, zaznacz ją w edytorze, a następnie kliknij Nawiguj | Hierarchia wywołań z menu głównego lub użyj skrótu ⌃⌥H (macOS) lub Ctrl+Alt+H (Windows/Linux).

Predefiniowane style kodu z innych projektów

Jedną z najbardziej pożądanych funkcji, które dodaliśmy do tego wydania, są predefiniowane style kodu z innych projektów, takich jak LLVM, GNU, Qt i Google. Pozwala to na przestrzeganie popularnych przewodników po stylu dla reguł struktury kodu, konwencji nazewnictwa i innych obszarów C++, w których spójność ma kluczowe znaczenie. Preferowany styl można wybrać za pomocą opcji Ustawienia | Edytor | Styl kodu | C/C++ | Ustaw z…..

Obsługa szybkich definicji

Wyskakujące okienko Quick Definition ujawnia, gdzie i jak zdefiniowane są funkcje, klasy, metody i inne symbole projektu. Aby je wywołać, należy umieścić kursor na symbolu w edytorze i nacisnąć ⌥Spacja (macOS) lub Ctrl+Shift+| (Windows/Linux). Można również uzyskać do niej dostęp z menu głównego poprzez Widok | Szybka definicja.

Programowanie wbudowane

W tym wydaniu kontynuowaliśmy rozszerzanie funkcjonalności CLion, aby zaspokoić różnorodne potrzeby programów wbudowanych. Główne aktualizacje dla rozwoju wbudowanego obejmują serwery debugowania, możliwość edycji wartości rejestrów peryferyjnych oraz wsparcie dla debugowania projektów West.

Serwery debugowania eksperymentalne

Wprowadziliśmy nową opcję konfiguracji serwerów debugowania, aby uprościć konfigurację debugowania dla wbudowanego i zdalnego programowania. Ta dedykowana sekcja, znajdująca się w Ustawienia | Debugger, umożliwia skonfigurowanie serwera debugowania dla określonej sondy debugowania i użycie go do uruchomienia lub debugowania celu kompilacji.

Aby włączyć opcję konfiguracji, przejdź do Ustawienia | Ustawienia zaawansowane | Debugger. Możesz wybrać Edytuj serwery debugowania z głównego przełącznika paska narzędzi lub przejść do Ustawienia | Debugger i otworzyć okno dialogowe Serwery debugowania, aby skonfigurować serwer debugowania.

Należy pamiętać, że jest to funkcja eksperymentalna i nie działa jeszcze z PlatformIO.

Wsparcie debugowania dla Zephyr West

Teraz można natywnie debugować projekty Zephyr wykorzystujące metanarzędzie West bezpośrednio w CLion. Po zaimportowaniu projektu Zephyr West, konfiguracja uruchamiania/debugowania West jest automatycznie tworzona w przełączniku Uruchom/Konfiguracje Debugowania. Można również utworzyć nową konfigurację uruchamiania/debugowania, wybierając Uruchom | Edytuj konfiguracje… z menu głównego, klikając + i wybierając szablon West.

Po skonfigurowaniu, nowa konfiguracja West run/debug będzie dostępna w przełączniku Run/Debug Configurations i można jej użyć do uruchomienia sesji debugowania.

Edytowalne wartości rejestrów peryferyjnych

Podczas debugowania urządzeń peryferyjnych, takich jak timery, interfejsy komunikacyjne lub porty GPIO, można teraz natychmiast obserwować wyniki modyfikacji, edytując rejestry urządzeń peryferyjnych bezpośrednio w panelu Peryferii.

Możesz testować różne konfiguracje i stany urządzeń w podróży bez ponownej kompilacji kodu lub przeładowywania aplikacji lub płytki.

Wsparcie dla MISRA C++:2023 z CLion Nova

Wytyczne MISRA są niezbędne przy opracowywaniu systemów o krytycznym znaczeniu dla bezpieczeństwa. W tym wydaniu zestaw narzędzi do analizy statycznej CLion otrzymuje znaczną część kontroli MISRA C++:2023 specjalnie ukierunkowanych na C++17.

Debuger

Debugger CLion otrzymał kilka aktualizacji, z których najważniejsze to przeglądarka obrazów OpenCV, możliwość dołączenia debuggera do nieuruchomionego procesu, sformatowany widok dla ciągów z danymi strukturalnymi oraz nowe dołączone debuggery GDB (15.2) i LLDB (19.1.3).

Przeglądarka obrazów OpenCV

Jeśli tworzysz aplikację ML, która korzysta z biblioteki OpenCV, możesz teraz wyświetlić dwuwymiarową tablicę OpenCV jako obraz podczas debugowania aplikacji. Obraz otwiera się w osobnym oknie dialogowym z wieloma opcjami edycji.

Przeglądarka obrazów OpenCV upraszcza kontrolę przetwarzania obrazów podczas debugowania aplikacji. Jest to również wygodniejsze niż alternatywne metody, takie jak zapisywanie obrazu na dysku twardym lub pisanie dodatkowego kodu, aby wyświetlić go w wyskakującym okienku.

Możliwość dołączenia debuggera do nieuruchomionego procesu

Dołączenie debuggera do nieuruchomionego procesu lokalnego jest pomocne, gdy jedna część projektu jest napisana w języku C++ i działa w CLion, podczas gdy inna jest napisana w innym języku i działa w środowisku zewnętrznym.

Aby wypróbować tę funkcję:

  • Ustaw punkt przerwania w kodzie.
  • Wybierz Uruchom | Dołącz do nierozpoczętego procesu… z menu głównego.
  • W polu linii poleceń dodaj wzorzec, aby znaleźć proces przy użyciu symboli wieloznacznych: *process_name*.
  • Wybierz potrzebne opcje.
  • Wybierz debugger do dołączenia.
  • Debugger rozpocznie obserwację procesu.

Po uruchomieniu zewnętrznego procesu, debugger podłączy się do niego. Od tego momentu sesja debugowania będzie kontynuowana w normalny sposób, z uruchomionym programem i zatrzymywaniem się w ustawionych punktach przerwania.

Widok sformatowany dla ciągów z danymi JSON, XML lub HTML

Podczas debugowania ciągów zawierających dane JSON, XML lub HTML lub znaki nowej linii można wyświetlać je sformatowane zgodnie z ich stylem kodu bezpośrednio w debugerze. Oznacza to, że nie trzeba już kopiować niesformatowanych wartości do innego narzędzia w celu ich sprawdzenia.

Podczas debugowania kliknij przycisk Widok obok zmiennej, aby wyświetlić ustrukturyzowane lub nieprzetworzone dane w osobnym oknie.

Inne ulepszenia

To wydanie zawiera również szereg usprawnień dla użytkowników, takich jak odnowione uzupełnianie chmury, nowy widżet stanu projektu i zaktualizowany interfejs użytkownika dla nowego terminala. Zaktualizowaliśmy również pakiet CMake do wersji 3.30.5.

Odnowione dokończenie z chmury obsługiwane przez AI Assistant

Ulepszona wtyczka JetBrains AI Assistant, zawierająca nasz wewnętrznie przeszkolony LLM dla C++, znacznie poprawiła szybkość i inteligencję uzupełniania kodu w chmurze CLion. AI Assistant zapewnia teraz więcej scenariuszy użycia, lepsze dopasowywanie sufiksów i bardziej poprawne uzupełnianie fragmentów kodu.

Jednym z najważniejszych ulepszeń jest wielowierszowe uzupełnianie kodu, które zapewnia podświetlanie składni i możliwość przyrostowego akceptowania sugestii dotyczących kodu.

Uzupełnianie kodu wielowierszowego działa obok standardowego uzupełniania kodu i uzupełniania kodu pełnoliniowego (to ostatnie wykorzystuje lokalny LLM i nie wymaga wysyłania danych do chmury). Umożliwia przeglądanie i akceptowanie sugestii przyrostowo. Dodatkowo można akceptować sugestie słowo po słowie za pomocą skrótu ⌥→ w systemie macOS lub Ctrl+→ w systemie Windows.

Widżet statusu projektu

Powiadomienia o stanie projektu w CLion informują o potencjalnych problemach z konfiguracją projektu i oferują sposoby ich rozwiązania. W poprzedniej wersji CLion, 2024.2, powiadomienia te były wyświetlane jako żółte banery w edytorze do momentu rozwiązania problemu. Były one nieistotne dla niektórych użytkowników – na przykład tych, którzy chcieli tylko otworzyć plik .cpp z innego projektu, aby przeczytać kod. W takich przypadkach baner powiadomień wiszący w edytorze przez cały czas jest zbędny.

W tym wydaniu przenieśliśmy powiadomienia o stanie projektu z górnej części edytora do nowego widżetu na pasku stanu.

Teraz powiadomienie o tym, że plik nie należy do żadnego projektu, pojawi się dopiero po najechaniu kursorem na ikonę ⚠️. Po kliknięciu ikony widżet zaoferuje rozwiązanie problemu. Dzięki temu powiadomienia są mniej rozpraszające, a jednocześnie informacje są dostępne dla tych, którzy ich potrzebują.

Zaktualizowany interfejs użytkownika dla nowego terminala

Interfejs nowego terminala został przeprojektowany tak, aby był bardziej kompaktowy dzięki zmniejszeniu wypełnienia. Zmiana ta maksymalizuje przestrzeń na ekranie, ułatwiając przeglądanie i pracę z poleceniami przy jednoczesnym zachowaniu czytelności i przejrzystości.

Podświetlone wystąpienia wybranego tekstu

Domyślnie CLion podświetla teraz każde wystąpienie zaznaczonego tekstu w dowolnym typie pliku, nie tylko w plikach .c i .cpp. Zmiana ta znacznie ułatwia śledzenie, gdzie zaznaczony tekst pojawia się w całym pliku.