Visual Studio'da C++ kodunu düzenleme ve yeniden düzenleme

Visual Studio kodunuzu yazmanıza, düzenlemenize ve yeniden düzenlemenize yardımcı olacak çeşitli araçlar sağlar.

IntelliSense

IntelliSense, siz yazarken simgeler ve kod parçacıkları öneren güçlü bir kod tamamlama aracıdır. Visual Studio'da C++ IntelliSense gerçek zamanlı olarak çalışır, kod tabanınızı güncelleştirdikçe analiz eder ve öneriler sağlar. Siz daha fazla karakter yazdıkça, önerilen sonuçların listesi daraltılır.

Ekleme, atama vb. gibi dizeler için kullanılabilen yöntemleri gösteren C artı üye listesi açılan listesinin ekran görüntüsü.

Bazı simgeler sonuçları daraltmaya yardımcı olmak için otomatik olarak atlanır. Örneğin, sınıf nesnesinin üyelerine sınıfın dışından erişirken, varsayılan olarak özel üyeleri veya korumalı üyeleri göremezsiniz (alt sınıf bağlamında değilseniz). Alttaki düğmeleri kullanarak filtrelemeyi ayarlayabilirsiniz.

Açılan listeden simgeyi seçtikten sonra Sekme,Enter veya diğer işleme karakterlerinden biriyle (varsayılan olarak: { } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \) simgeyi otomatik olarak tamamlayabilirsiniz. Bu listeden karakter eklemek veya listeden karakter kaldırmak için Hızlı Başlat'ta (Ctrl + Q) "IntelliSense" araması yapın ve Metin Düzenleyicisi > C/C++ > Gelişmiş seçeneğini belirleyin. Üye Listesi İşleme Karakterleri seçeneği, listeyi istediğiniz değişikliklerle özelleştirmenizi sağlar.

Üye Listesi Filtre Modu seçeneği, ne tür IntelliSense otomatik tamamlama önerileri göreceğinizi denetler. Varsayılan olarak, Belirsiz olarak ayarlanmıştır. Belirsiz bir aramada MyAwesomeClass adlı bir simgeniz varsa, "MAC" yazabilir ve sınıfı otomatik tamamlama önerilerinizde bulabilirsiniz. Benzer algoritma, simgelerin listede görünmesi için uyması gereken en düşük eşiği ayarlar. Akıllı filtreleme, yazdığınız değerle eşleşen alt dizeler içeren tüm simgeleri görüntüler. Ön ek filtreleme, yazdıklarınızla başlayan dizeleri arar.

C++ IntelliSense hakkında daha fazla bilgi için bkz. Visual C++ IntelliSense ve IntelliSense için C++ projesi yapılandırma.

IntelliCode

IntelliCode, yapay zeka destekli IntelliSense'tir. En olası adayı tamamlama listenizin en üstüne yerleştirir. IntelliCode önerileri, GitHub'da her biri 100'den fazla yıldıza sahip binlerce açık kaynak projesini temel alır. Tamamlama listesi, kodunuzun bağlamıyla birleştirildiğinde, yaygın uygulamaları teşvik etmek için uyarlanır.

C++ yazarken IntelliCode, C++ Standart Kitaplığı gibi popüler kitaplıkları kullanırken yardımcı olur. Kodunuzun bağlamı, önce en yararlı önerileri sağlamak için kullanılır. Aşağıdaki örnekte üye size işlevi genellikle işlevle birlikte kullanıldığından sort sonuç listesinin en üstüne gösterilir.

Kodunuzda en yaygın olarak kullanılan vektör sınıfının üyelerini sıralanmış olarak gösteren C artı IntelliCode açılan listesinin ekran görüntüsü.

Visual Studio 2022 ve Visual Studio 2019'da IntelliCode, C++ Masaüstü Geliştirme iş yükünde isteğe bağlı bir bileşen olarak kullanılabilir. IntelliCode'un C++ için etkin olduğundan emin olmak için Araçlar>Seçenekler>IntelliCode>Genel'e gidin ve C++ temel modeliniEtkin olarak ayarlayın.

Visual Studio 2017'de IntelliCode, Visual Studio Market'te bir uzantı olarak kullanılabilir.

Tahmine Dayalı IntelliSense (Deneysel)

Tahmine dayalı IntelliSense, IntelliSense açılan listesinde görüntülenen sonuç sayısını sınırlamak için bağlamsal farkındalığı kullanan deneysel bir özelliktir. Algoritma, yalnızca beklenen türle eşleşen sonuçları göstermek için tür eşleştirme uygular. En basit durumda, IntelliSense açılan listesini yazıp int x = çağırırsanız yalnızca tamsayıları veya tamsayıları döndüren işlevleri görürsünüz. Bu özellik, hala geliştirme aşamasında olduğundan varsayılan olarak kapalıdır. Genel simgelerle en iyi şekilde çalışır; üye işlevleri henüz desteklenmiyor. Hızlı Başlat'ta "Tahmine Dayalı" yazarak veya Araçlar>Seçenekler>Metin Düzenleyicisi>C/C++>Deneysel>Tahmine Dayalı IntelliSense'i Etkinleştir'e giderek bu özelliği açabilirsiniz.

Tahmine Dayalı IntelliSense'i geçersiz kılmak ve daha uzun listeyi göstermek için Ctrl + J tuşlarına basın. Tahmine Dayalı IntelliSense açıksa, Ctrl + J çağrılırsa Tahmine Dayalı filtre kaldırılır. Ctrl + J tuşlarına yeniden basılması, uygun olduğunda Üye Listesi sonuçlarından erişilebilirlik filtresini kaldırır. IntelliSense açılan listesinin altındaki ([+]) düğmesi , Ctrl + J ile aynı işlemi yapar. Gösterilenler hakkında araç ipucu bilgilerini görmek için düğmenin üzerine gelin.

C artı artı Tahmine Dayalı IntelliSense'in ekran görüntüsü.

Yukarıdaki ekran görüntüsünde açılan listenin altında birkaç düğme gösterilmektedir. Bunlar, farklı sonuç türleri için IntelliSense Filtrelerini etkinleştirir:

  • Değişkenler ve Sabitler
  • İşlevler
  • Türler
  • Makrolar
  • Numaralandırmalar
  • Ad alanları

Bir düğme yalnızca geçerli IntelliSense oturumunuzla ilgiliyse görüntülenir. Genellikle tüm düğmeleri aynı anda görmezsiniz.

Şablon IntelliSense

Şablon çubuğu, imleciniz şablon tanımında olduğunda görüntülenen bir ui öğesidir. Şablon gövdesini düzenlerken görünecek intellisense için örnek şablon bağımsız değişkenleri sağlayabileceğiniz için yararlıdır. Örneğin, bir şablon bağımsız değişkeninin türünde std::vector<int>olduğunu belirtebilirsiniz. Ardından, şablon gövdesinde bu bağımsız değişkeni kullandığınızda, üyelerini std::vector<int>intellisense'te görürsünüz.

Var Olan Tüm Örneklemeleri Ekle seçeneğinin vurgulandığı şablon çubuğunun ekran görüntüsü.

Şablon Çubuğu'nu<genişletmek/daraltmak için T> simgesine tıklayın. Parametreler için bağımsız değişken türlerini belirttiğiniz Düzenle penceresini açmak için kalem simgesine tıklayın veya Şablon Çubuğu'na çift tıklayın.

Şablon çubuğunda her şablon parametresi için bir tür girdiğiniz düzenleme deneyiminin ekran görüntüsü.

Şablon Çubuğu, kodunuzda şablonun örneklemelerine göre parametre türlerini otomatik olarak doldurabilir. Kod tabanınızda şablonun örneğini oluşturmak için kullanılan tüm somut bağımsız değişkenlerin listesini görmek için Varolan Tüm Örneklemeleri Ekle'ye tıklayın.

C = AmbientLight, C = Candle ve diğerleri gibi C şablon parametresinin örneğini oluşturmak için kullanılan farklı türleri listeleyen Şablon IntelliSense Sonuçlarının ekran görüntüsü.

Düzenleyicinin alt kısmındaki bir pencere, her örneklemenin nerede bulunduğunu ve bağımsız değişkenlerinin ne olduğunu gösterir. Örneği oluşturma işleminin bulunduğu kodunuzdaki konuma gitmek için bir örnekleme seçebilirsiniz.

Kodunuzda şablonun örnek oluşturma listesinin ekran görüntüsü. Örnekleme, dosya, konum ve bağımsız değişkenler listelenir.

Şablon Çubuğu bilgileri kullanıcıya özgüdür. Klasörde depolanır .vs ve kaynak denetimine kaydedilmez.

Hata dalgalı çizgiler ve hızlı düzeltmeler

Düzenleyici kodunuzla ilgili sorunlar algılarsa sorunun altına renkli dalgalı çizgiler ekler. Kırmızı dalgalı çizgiler derlenmeyecek kodu gösterir. Yeşil dalgalı çizgiler, hala ciddi olabilecek diğer sorun türlerini gösterir. Sorunlar hakkında daha fazla bilgi edinmek için Hata Listesi penceresini açabilirsiniz.

Bazı hata türleri ve yaygın kodlama desenleri için düzenleyici, dalgalı çizginin üzerine geldiğinizde görüntülenen ampul biçiminde bir Hızlı Düzeltme sunar. Önerileri görmek için aşağı oka tıklayın.

Aşağıdaki örnekte, bir vector bildirildi ancak tanım bulunamadı, bu nedenle düzenleyici gerekli üst bilgi dosyasını eklemeyi teklif ediyor:

Hatanın ve # ekleme vektörünün önerilen hızlı düzeltmesinin ekran görüntüsü.

Düzenleyici, bazı yeniden düzenleme fırsatları için Hızlı Düzeltmeler de sunar. Örneğin, bir üst bilgi dosyasında sınıf bildirirseniz, Visual Studio bunun için ayrı bir .cpp dosyasında bir tanım oluşturmayı önerir.

Kanallarda Kanal Yolu Yineleyicisi tanımı oluştur nokta C P P seçeneğinin vurgulandığı hızlı düzeltmeyi gösteren ekran görüntüsü.

Değişiklik izleme

Bir dosyada her değişiklik yaptığınızda, kaydedilmemiş değişikliklerin yapıldığını belirtmek için sol tarafta sarı bir çubuk görünür. Dosyayı kaydettiğinizde, çubuk yeşile döner. Belge düzenleyicide açık olduğu sürece yeşil ve sarı çubuklar korunur. Belgeyi son açtığınızdan bu yana yapılan değişiklikleri temsil ederler.

C artı artı değişiklik izleme ekran görüntüsü. Değişiklikleri göstermek için sol tarafta sarı bir çubuk görünür.

Kodu taşıma

Kod satırlarını seçip Alt tuşunu basılı tutarak ve Yukarı/Aşağı ok tuşlarına basarak yukarı ve aşağı taşıyabilirsiniz.

Kod parçacıkları ekleme

Kod parçacığı, önceden tanımlanmış bir kaynak kod parçasıdır. Tek bir noktaya veya seçili metne sağ tıklayın ve kod parçacığı eklemek veya seçili metni kod parçacığıyla çevrelemek için Kod Parçacığı'nı seçin. Aşağıdaki çizimde, seçilen bir deyimi for döngüsüyle çevrelemek için üç adım gösterilmektedir. Son görüntüdeki sarı vurgular, sekme tuşuyla erişdiğiniz düzenlenebilir alanlardır. Daha fazla bilgi için bkz. Kod Parçacıkları.

Kod Parçacığı Ekle Açılan listesinin ekran görüntüsü.

bir işlev seçilidir. İşlev adına sağ tıkladıktan sonra görüntülenen açılan listede Şununla Çevrele... sarı renkle vurgulanır. Şununla Çevrele: açılan listesinde bir 'for' döngüsünün kod parçacığı seçilir. Bu, işlevin çevresine bir for döngüsü yerleştirmeyle sonuçlanıyor. Döngü değişkeni ve sınırı, düzenlenebilir alanlar olduğunu belirtmek için sarı renkte gösterilir.

Sınıf Ekle

Proje menüsünden veya Çözüm Gezgini bağlam menüsünden yeni bir sınıf ekleyin:

Yeni Sınıf Ekle iletişim kutusunun ekran görüntüsü. Sınıf adı, erişilebilirlik, bildirimi ve uygulamayı koyacak dosyalar vb. alanları vardır.

Varolan bir sınıfı değiştirmek veya incelemek için Sınıf Sihirbazı'nı da kullanabilirsiniz.

Yöntem, üye değişkeni ve çok daha fazlasını ekleme seçeneklerinin bulunduğu Sınıf Sihirbazı'nın ekran görüntüsü.

Daha fazla bilgi için bkz. Kod Sihirbazlarıyla İşlevsellik Ekleme (C++).

Yeniden Düzenle

Yeniden düzenleme işlemleri, Hızlı İşlem bağlam menüsünün altında veya düzenleyicide bir ampule tıklayarak kullanılabilir. Bazıları, Yeniden Düzenlemeyi Düzenle > menüsünde de bulunur. Bu özellikler şunları içerir:

ClangFormat ve EditorConfig ile kod stili zorlama

Visual Studio 2017 ve üzeri, Clang/LLVM tabanlı C++ için popüler bir kod biçimlendirme yardımcı programı olan ClangFormat için yerleşik destekle birlikte gelir. Şu yaygın biçimlerden birini kullanacak şekilde ayarlamak için Hızlı Başlat'a "ClangFormat" yazın:

  • LLVM
  • Google
  • Chromium
  • Mozilla
  • Webkit
  • Visual Studio

Ayrıca, tüm kod dosyalarına aynı düzeyde veya altında özel kurallar uygulamak için kendi .clang-format veya _clang-format dosyanızı da sağlayabilirsiniz.

Dosyalar kaynak denetimi aracılığıyla kolayca paylaşılabilir, böylece tüm geliştirme ekibiniz genelinde kodlama kurallarını zorunlu kılabilirsiniz.

Sütun sınırı, girinti genişliği, sekme genişliği gibi birçok seçeneğin bulunduğu .clang biçimli dosyayı gösteren ekran görüntüsü.

Visual Studio 2017 ve üzeri de benzer şekilde çalışan EditorConfig'i destekler. Ancak ClangFormat, C++'a özgü kurallar da dahil olmak üzere EditorConfig'den daha fazla stil seçeneğine sahiptir. EditorConfig ile .editorconfig dosyaları oluşturur ve bu klasörler ve alt klasörleri için kod stillerini belirtmek üzere bunları kod tabanınızın farklı klasörlerine yerleştirirsiniz. .editorconfig dosyası üst klasörlerdeki diğer .editorconfig dosyalarının yerini alır ve Araçlar>Seçenekleri aracılığıyla yapılandırılan biçimlendirme ayarlarının üzerine yazar. Sekmeler ve boşluklar, girinti boyutu ve daha fazlası için kurallar ayarlayabilirsiniz. Daha fazla bilgi için bkz. EditorConfig ile taşınabilir, özel düzenleyici ayarları oluşturma.

Diğer biçimlendirme seçenekleri

Hızlı Başlat arama kutusu, bir ayarı veya aracı bulmanın en hızlı yolunu sağlar. Ana menüde yer alır. Yazmaya başladığınızda otomatik tamamlama listesi sonuçları filtreler.

Hızlı Başlat arama kutusunun ekran görüntüsü. C artı artı gelişmiş aramasını gösterir ve bu da metin düzenleyicisi için seçeneklerle sonuç verir.

Girintiler, ayraç tamamlama ve renklendirme gibi biçimlendirme seçeneklerini ayarlamak için Hızlı Başlat penceresine "C++ Biçimlendirme" yazın.

Bir sekme yazarken otomatik olarak girintilenip girintili yazılmayacağı gibi C++ biçimlendirme seçeneklerini gösteren ekran görüntüsü.

Diğer biçimlendirme seçenekleri, ana menüdekiGelişmişDüzenle> altında bulunur.

Boşluk görüntüleme, sözcük kaydırma, seçime açıklama ekleme, satır girintisini artırma gibi gelişmiş düzenleme seçeneklerini gösteren ekran görüntüsü.

C++'a özgü düzenleme özelliklerini etkinleştirme ve yapılandırma seçenekleri , Araçlar>Seçenekleri>Metin Düzenleyicisi>C/C++ altında bulunur. Ayarlamak istediğiniz seçeneği belirledikten sonra, iletişim kutusu odaktayken F1 tuşuna basarak daha fazla yardım alabilirsiniz. Genel kod biçimlendirme seçenekleri için Hızlı Başlat'a yazınEditor C++.

Visual Studio menü öğesinin Araçlar'ın seçili olduğunu ve Seçenekler menü öğesinin vurgulandığı ekran görüntüsü.

Visual Studio'nun gelecek bir sürümüne dahil edilebilecek veya eklenmeyecek deneysel özellikler, Metin Düzenleyicisi C++ Deneysel iletişim kutusunda bulunur. Visual Studio 2017 ve sonraki sürümlerde bu iletişim kutusunda Tahmine Dayalı IntelliSense'i etkinleştirebilirsiniz.

Ayrıca Bkz.

C++ kodunu
okuma ve anlama Visual Studio'da C++ kod tabanınızda gezinme
C++ için Live Share ile işbirliği yapma