Moduły C++20
Moduły to nowa funkcja w C++20. Zostały wprowadzone w celu zmniejszenia wielu problemów związanych z używaniem plików nagłówkowych poprzez odizolowanie deklaracji i ograniczenie ich widoczności do modułu. Możliwe też że wykorzystywanie modułów pomoże skrócić czas kompilacji.
Większość modeli projektów w C++ nie działa z modułami. CMake rozpoczął pracę w tym kierunku i oferuje wstępne wsparcie. Na przykład teraz działa z modułami, gdy używany jest generator programu Visual Studio.
Jak działają moduły w CLion
Niezależnie od podejścia użytego w trakcie kompilacji modułów w projekcie, CLion 2022.3 EAP teraz:
- Zbiera informacje ze wszystkich plików .ixx, .cppm i .mxx.
- Analizuje instrukcje eksportu modułu {nazwa} i tworzy mapowania między {nazwa} a nazwami plików modułów.
- Przekazuje te mapowania do aparatu języka opartego na Clangd i używa ich do zapewnienia pomocy w kodzie i podświetlania kodu.
Informacje zebrane z modułów są zachowywane między kolejnymi uruchomieniami CLion. Jeśli kod lub nazwa modułu zostanie zaktualizowana, CLion automatycznie przeanalizuje zmiany.
Asysta dla modułów w CLion 2022.3 EAP obejmuje:
- Podświetlanie składni dla nowych słów kluczowych modułu (import, eksport i moduł),
- Uzupełnianie symboli z modułów,
- Nawigacja do deklaracji/definicji symboli z modułów,
- Znajdź Zastosowania i refaktoryzacje działa jak zwykle wewnątrz modułów. Można także wypróbować wczesną wersję refaktoryzacji Zmień nazwę, Zmień podpis i Wyodrębnij, które działają poza granicami modułów. Na razie działają tylko dla plików otwieranych w CLion.
Błędy/ograniczenia dotyczące modułów:
- CLion nie obsługuje modułów ze standardowej biblioteki MSVC.
- Import nagłówków nie jest jeszcze obsługiwany.
- Obecnie nie ma akcji dodawania nowego modułu z widoku projektu.
- Uzupełnianie kodu nie jest dostępne dla słów kluczowych i nazw modułów w instrukcjach importu.
- Obecnie nie jest możliwe przejście do modułu z nazwy modułu w instrukcji importu.
- CLion nie uważa plików .cpp za moduły, więc na razie lepiej używać innych rozszerzeń (na przykład .cppm).
Import wyników profilowania
Wcześniej można było eksportować wyniki profilowania w CLion na macOS. Teraz funkcjonalność zostaje rozszerzona na wszystkie platformy, a także umożliwiany jest import wyników profilowania z powrotem do CLion. Jest to przydatne podczas profilowania na zdalnym lub osadzonym celu i importowania wyników lokalnie w CLion. Import już przechwyconych wyników dostępny jest przez Uruchom | Otwórz Profiler Snapshot, i wybierając nowy plik lub jeden z ostatnio otwieranych.
Wyniki są eksportowane do pliku .collapsed. Ten plik zawiera ślady połączeń w formacie używanym przez skrypt FlameGraph. Format jest ustandaryzowany i przedstawia kolekcję stosów wywołań, gdzie każdy wiersz jest listą ramek oddzielonych średnikami, po których następuje licznik.
Nawigacja Przejdź do źródła działa poprawnie w przypadku profilowania danych i działa nadal po imporcie/eksporcie.
Nowy sposób pracy z projektami w WSL2
CLion 2022.3 oferuje alternatywny sposób pracy z projektami uruchomionymi w systemach plików WSL2. Zamiast uruchamiać pełne IDE w systemie Windows, backend w IDE uruchomi się bezpośrednio w samym WSL2. Następnie można się z nim połączyć w ten sam sposób, w jaki można połączyć się z dowolną zdalną maszyną podczas korzystania ze zdalnego programowania w CLion. Może to zapewnić lepszą wydajność IDE podczas pracy z projektami w WSL2.
Inne zmiany:
- W ustawieniach profile CLion CMake utworzone z ustawień predefiniowanych CMake są teraz wyświetlane w tej samej kolejności, co w pliku CMakePresets.json.
- Kontynuowane jest ulepszanie wyróżniania argumentów poleceń CMake w tej kompilacji EAP.
- Wprowadzono kilka ulepszeń do wskazówek dotyczących parametrów.
- Atrybuty CUDA nie są już podświetlane na czerwono, gdy używane są zdalne łańcuchy narzędzi.
- Widok wątku RTOS działa teraz również dla symetrycznego wieloprocesowego przetwarzania (SMP). Działa to tylko wtedy, gdy rdzenie procesora są identyczne.