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.