Rozpoczęliśmy prace nad kolejną dużą wersją, 2025.1, którą wprowadzimy na początku przyszłego roku.
CLion Nova
Wciąż pracujemy nad ulepszeniem naszego nowego, szybszego i potężniejszego silnika językowego CLion Nova, optymalizując jego wydajność i rozszerzając zestaw funkcji. Z każdym dniem staje się on coraz lepszy do służenia jako domyślny silnik dla wszystkich użytkowników, nowych i istniejących.
W wydaniu 2025.1 nasze wysiłki rozwojowe CLion Nova skupią się na niektórych z najbardziej pożądanych funkcji, w tym obsłudze plików poza projektem, wielu ustawieniach i akcjach oraz inteligentnych kluczach.
Pliki poza projektem
CLion Nova nie obsługuje poprawnie plików nagłówkowych i źródłowych, które nie są zawarte w projekcie, a zatem nie dostarcza niezbędnych informacji o kompilatorze. Powoduje to różne problemy z analizą kodu i jego pomocą.
Obsługa tego rodzaju plików spoza projektu w CLion Nova jest jedną z najbardziej oczekiwanych funkcji, nad którymi pracowaliśmy w nadchodzących wydaniach (CPP-38040). Z przyjemnością informujemy, że poczyniliśmy pewne postępy w tym obszarze i mamy nadzieję wprowadzić tę funkcję w wersji 2025.1.
Warto wspomnieć, że historycznie backend ReSharper C++ używany w CLion Nova został zaprojektowany do pracy z projektami, w których każdy plik, w tym pliki nagłówkowe, jest wyraźnie wymieniony w skryptach kompilacji. Nie jest tak w przypadku większości systemów kompilacji obsługiwanych przez CLion. Z tego powodu musimy przywrócić zestaw kompromisów i heurystyk, które CLion Classic wykorzystuje w takich przypadkach.
Ustawienia i działania
Planujemy zaimplementować kilka ustawień i akcji dostępnych w CLion Classic, ale brakujących w CLion Nova, które sprawią, że rozwój z nowym silnikiem będzie wygodniejszy. Obejmują one:
- Opcje automatycznego importu C/C++, takie jak Automatyczne importowanie plików lokalnych z cudzysłowami i Automatyczne importowanie po zakończeniu (CPP-35360).
- Ustawienia stylu dla osłon nagłówków, które pomagają zachować ich nazwy zgodnie z preferowanym formatem i umożliwiają tworzenie niestandardowych szablonów (CPP-36933).
- Możliwość przeniesienia kursora na koniec lub początek bloku kodu za pomocą skrótu (CPP-36147).
Inteligentne klucze
Inteligentne klucze to akcje edytora, które pozwalają na szybsze pisanie kodu i sprawiają, że praca w IDE jest jeszcze bardziej płynna. Kilka z tych akcji jest dostępnych w CLion Classic, ale wciąż brakuje ich w CLion Nova. Oto niektóre z inteligentnych klawiszy, które dodamy w następnej wersji:
- Przeskakiwanie poza nawias zamykający/cytat za pomocą klawisza Tab podczas pisania (CPP-24705).
- Wcięcie po naciśnięciu Backspace (CPP-35995).
- Ponowne formatowanie bloku po wpisaniu `}` (CPP-38777).
Debugger
Jeśli chodzi o nowe funkcje debuggera w wersji 2025.1, planujemy skupić się na niektórych z najbardziej wyczekiwanych, takich jak:
- Ładne drukarki Qt: Dodamy obsługę ładnych wydruków Qt, aby poprawić czytelność zmiennych Qt, tablic i innych typów danych podczas debugowania (CPP-605).
- Niestandardowy plik binarny LLDB: Użytkownicy, którzy nie mogą korzystać z dołączonego do CLion LLDB, wkrótce będą mogli przełączyć się na niestandardowy binarny LLDB (CPP-3589).
Programowanie wbudowane
W przypadku programowania wbudowanego koncentrujemy się na ulepszaniu serwerów debugowania i dodawaniu możliwości monitorowania zmiennych i wartości pamięci w czasie rzeczywistym podczas debugowania.
Serwery debugowania
Kontynuujemy udoskonalanie naszej eksperymentalnej opcji konfiguracji serwerów debugowania wprowadzonej w wersji 2024.3. Opcja ta pozwala skonfigurować serwer debugowania dla określonej sondy debugowania i używać go do uruchamiania lub debugowania celu kompilacji. W rezultacie serwery debugowania ułatwiają konfigurowanie i uruchamianie debugowania dla wbudowanego i zdalnego programowania.
W następnej wersji ułatwimy konfigurację tej funkcji, dodając następujące elementy:
- Serwer debugowania ESP32: Oprócz wstępnie skonfigurowanych szablonów serwerów debugowania Generic i SEGGER J-Link, dodamy nowy szablon dla ESP32 MCU. Uprości to flashowanie tych układów i debugowanie aplikacji.
- Ulepszenia interfejsu użytkownika: Planujemy również poprawić wygodę użytkownika podczas pracy z serwerami debugowania, koncentrując się na usprawnieniu procesu konfiguracji i interfejsu użytkownika okna dialogowego Serwery Debugowania.
Obserwowanie wartości zmiennych i zmian pamięci w czasie rzeczywistym
Obserwowanie wartości zmiennych i zmian pamięci w czasie rzeczywistym bez zatrzymywania programu ma krytyczne znaczenie dla wielu programistów wbudowanych. Pozwala im monitorować stan urządzenia i wydajność aplikacji, co jest szczególnie pomocne w testowaniu i wykrywaniu błędów.
Formaty projektów i narzędzia kompilacji
Wśród wielu ulepszeń formatów projektów i narzędzi kompilacji, najbardziej znaczące dotyczą obsługi Zephyr, Bazel i zdalnego łańcucha narzędzi Docker.
Wsparcie sysbuild dla Zephyr
Jedną z aktualizacji związanych z Zephyr zaplanowanych na nadchodzące wydanie jest wsparcie dla sysbuild. Jest to wysokopoziomowy system kompilacji, który łączy w sobie inne systemy kompilacji, takie jak West i CMake. Główną zaletą sysbuild jest możliwość budowania wielu obrazów dla płyt z wieloma SoC (systemami na chipie) lub SoC z wieloma rdzeniami CPU. Innym popularnym przykładem użycia sysbuild jest sytuacja, w której jedna aplikacja jest tworzona dla programu ładującego, podczas gdy inna jest tworzona dla głównego procesora.
Ulepszenia wtyczki Bazel
Planujemy kilka ulepszeń obsługi Bazel w CLion, z których najważniejsze są następujące:
- Wsparcie dla qsync do importowania projektów C/C++: Synchronizacja zapytań (qsync) jest jednym z dwóch sposobów importowania projektów Bazel dla C/C++. Drugim jest synchronizacja aspektów, której obecnie używa CLion. Krótko mówiąc, qsync jest szybszy, ponieważ pozwala importować tylko te części projektu, których potrzebujesz. Naszym celem jest dodanie podstawowej obsługi qsync w następnym wydaniu (CPP-42253).
- Wsparcie dla Google Test i Catch2 podczas pracy z projektami Bazel przy użyciu CLion Nova. Dodaliśmy to już do wersji 2024.12.17 wtyczki Bazel i wkrótce będzie dostępne w CLion Nova.
Najnowsze wersje CMake i CMake Presets
W poprzednim wydaniu zaktualizowaliśmy pakiet CMake do wersji 3.30. Dla CLion v2025.1 planujemy zaktualizować system kompilacji do najnowszej wersji CMake, v3.31, która będzie również zawierać wsparcie dla CMake Prestes v10. CMake Presets są przydatne, gdy chcesz określić wspólne opcje kompilacji i udostępnić je innym użytkownikom.
Zdalny zestaw narzędzi Docker
Obecnie toolchain Docker w CLion umożliwia pracę z kontenerami tylko lokalnie. Istnieją dwa tryby pracy z kontenerami działającymi zdalnie: przez Gateway i z lokalnymi źródłami. W wersji 2025.1 planujemy dodać obsługę zdalnego zestawu narzędzi Docker, umożliwiając użytkownikom pracę ze zdalnymi kontenerami za pośrednictwem połączenia SSH (CPP-42340).