The CLion 2024.3 EAP


Program wczesnego dostępu dla CLion 2024.3 został oficjalnie uruchomiony. Pierwsza kompilacja EAP 243.12818.61 jest już dostępna.

Ulepszone uzupełnianie kodu w chmurze

Uzupełnianie kodu w chmurze CLion obsługiwane przez JetBrains AI Assistant stało się szybsze i inteligentniejsze dzięki wewnętrznie wyszkolonemu dużemu modelowi językowemu (LLM) dla C++. Jednym z najbardziej widocznych rezultatów jest ulepszone uzupełnianie kodu wielowierszowego, z ulepszonymi scenariuszami użycia, podświetlaniem składni i przyrostową akceptacją sugestii dotyczących kodu.

Sugestie kodu wielowierszowego działają w połączeniu ze standardowym uzupełnianiem kodu i uzupełnianiem kodu pełnowierszowego (to ostatnie wykorzystuje lokalny LLM i nie wymaga wysyłania danych do chmury). Pozwala to na stopniowe przeglądanie i akceptowanie sugestii. Sugestie można również akceptować słowo po słowie za pomocą skrótu ⌥→ dla macOS i Ctrl+→ dla Windows.

Zaktualizowane uzupełnianie w chmurze oferuje teraz szerszy zakres scenariuszy użycia, z ulepszonym dopasowywaniem sufiksów zapewniającym, że przewidywany fragment kodu poprawnie uzupełnia istniejący kod.

CLion Nova

Zauważalne ulepszenia można podzielić na dwie główne kategorie: specyficzne dla języka i te związane z wykorzystaniem pamięci IDE.

Ulepszenia specyficzne dla języka

Dodaliśmy jedną z najbardziej pożądanych funkcji – predefiniowane style kodu z innych języków i frameworków, w tym LLVM, Qt, Google, GNU i innych (CPP-36365). Preferowany styl kodu można wybrać za pomocą opcji Ustawienia | Edytor | Styl kodu | C/C++ | Ustaw z…

Ułatwia to sprawdzenie, gdzie w kodzie używane są funkcje rekurencyjne i uniknięcie potencjalnie szkodliwych sytuacji, takich jak przepełnienie stosu.

Ulepszyliśmy również CLion Nova o obsługę niektórych z najnowszych funkcji biblioteki standardowej i przypadków przełączania z zakresem wartości, co jest rozszerzeniem GNU.

Ulepszenia wykorzystania pamięci

Wiele ulepszeń w CLion Nova pomogło zmniejszyć zużycie pamięci, co jest szczególnie zauważalne w przypadku dużych projektów. Przetestowaliśmy wyniki tych optymalizacji, porównując wykorzystanie pamięci przez projekt Chromium w CLion Nova 2024.2 i 2024.3 (EAP). Wynik pokazał, że w nowej wersji frontend IDE zużywa o 51% mniej pamięci, a backend IDE o 15% mniej.

Z perspektywy użytkownika, najlepiej widocznym rezultatem tych liczb jest to, co następuje:

  • IDE jest teraz bardziej responsywne, ponieważ zużywa mniej pamięci, a garbage collector jest wywoływany rzadziej. Jest to szczególnie pomocne na hostach z ograniczoną pamięcią.
  • IDE jest gotowe do szybszej pracy i lepiej reaguje na modyfikacje projektu.

Formaty projektów, narzędzia kompilacji i debugowanie

Naprawiliśmy błąd, który spowalniał przeładowywanie niektórych średnich i dużych projektów CMake (CPP-39211). Czas przeładowania został skrócony z minut do sekund.

Następujące pakiety zostały zaktualizowane:

  • CMake do wersji 3.30.
  • LLDB do wersji 18. Należy pamiętać, że fork JetBrains LLDB używany dla łańcucha narzędzi MSVC nadal używa starszej wersji LLDB.

Rozwój wbudowany

Wprowadzono kilka ulepszeń do integracji PlatformIO, w tym następujące:

  • PlatformIO jest teraz wykrywane podczas instalacji przez Homebrew i venv.
  • CLion poprawnie identyfikuje pliki źródłowe w projektach PlatformIO, a analiza kodu działa tak, jak powinna.
  • Akcja przesyłania jest teraz dostępna dla wszystkich obiektów docelowych, nawet tych, które nie zostały jawnie dodane do env.

Inne aktualizacje związane z rozwojem wbudowanym obejmują:

  • Wtyczka Serial Port Monitor teraz poprawnie wykrywa porty urządzeń USB, które są ustawione za pomocą ścieżek soft link. Wtyczka otrzymała również ulepszenia interfejsu użytkownika.
  • Pliki konfiguracyjne Zephyr West mają teraz podświetlanie składni, aby kod był łatwiejszy do odczytania i zrozumienia.
  • Rozszerzono obsługę plików .dts i .dtsi. Dyrektywy preprocesora C, takie jak #ifdef CONFIG_SPL i #ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL są teraz przetwarzane poprawnie i nie powodują błędów składni.

Inne ulepszenia

Ulepszyliśmy wskazówki dotyczące wdrażania, aby lepiej pokazać jego możliwości od samego początku. Głównym celem jest pomoc w szybszej nauce IDE.

Ponadto, począwszy od wersji 2024.3, nowy terminal jest domyślny. Zapewnia on takie funkcje, jak rozdzielanie wyjścia poleceń na odrębne bloki wizualne i uzupełnianie nazw poleceń, flag, argumentów i ścieżek.