Yanıtlar:
Katlanır kullanıma sunuldu ve şimdi Visual Studio Code sürüm 0.10.11'den beri uygulanmaktadır . Kullanılabilir bu klavye kısayolları vardır:
Katla , imlecin en içteki çökmemiş bölgesini katlar:
Aç / Çıkar imlecindeki daraltılmış bölgeyi açar:
Tümünü Katla düzenleyicideki tüm bölgeleri katlar:
Tümü Aç / Editör'de tüm bölgeleri açar:
Referanslar: https://code.visualstudio.com/docs/getstarted/keybindings
F1
ve Katla veya Aç
Visual Studio Code sürüm 1.12.0, Nisan 2017 itibariyle, bkz. Temel Düzenleme> Katlama belgelerdeki bölümüne bakın.
Varsayılan tuşlar:
Tümünü Katla: CTRL+ K, CTRL+ 0(sıfır)
Katlama Düzeyi [n]: CTRL+ K, CTRL+ [n]*
Tümünü Aç: CTRL+ K, CTRL+J
Katlama Bölgesi: CTRL+ K, CTRL+[
Açılma Bölgesi: CTRL+ K, CTRL+]
* Katlama Seviyesi: en dış sınıflar hariç tümünü katlamak için CTRL+ K, CTRL+1
Mac'ler: ⌘yerine kullanın CTRL(teşekkürler Prajeet)
ctrl+k,ctrl+num
sadece sayısal
Bölgelere göre kod katlama v1.17 ile geldi. Bölgelere göre katlama belgeleri . Ve v1.19 ve 1.23 .
[Genellikle örneğin, bir boşluk ekleyebilir // region and // endregion
için //region and //endregion
ve aynı zamanda çalışacak.]
TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregion
C#: #region and #endregion
C/C++: #pragma region and #pragma endregion
F#: //#region and //#endregion
PowerShell: #region and #endregion
Python: #region and #endregion
VB: #Region and #End Region
PHP: #region and #endregion
Bat: ::#region and ::#endregion or REM #region and REM #endregion
Markdown: <!-- #region --> and <!-- #endregion -->
Golang //region and //endregion or //#region and //#endregion
Java //#region and //#endregion
CSS/SCSS/Less: /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less: // #region and // #endregion
Go: // region, // endregion and // #region, // #endregion
shellscript: # region and # endregion
Perl5 #region and #endregion or =pod and =cut`
Önemli: Dilinizi listede görmüyorsanız ::
Her dilde işaretçiler için snippet'ler de vardır. '#' Yazın ve görmek için kod tamamlamayı çağırın. Dilinize göre bölge işaretleyicileri yapılandırmak için dil uzantısı sağlayıcısına başvurun.
Bu nedenle , herhangi bir dil için bölge işaretlerini görmek için #
ve ardından Ctrl+ Spaceyazın.
// region
ve // endregion
VS Code sürüm 1.22 ile çalışmıyor (bunun altında veya üstünde sürümleri test etmedim). Ancak // #region
ve // #endregion
çalışır (her ikisinde de '#' ve boşluğu not edin). Bu şekilde, ESLint (kullanıyorsanız), spaced-comment
kural açıksa (yani 'kapalı' veya 0 olarak ayarlanmamışsa ) hata göstermez .
/* #region Foo Bar */
ve/* #endregion */
//region
ve //endregion
JavaScript içindir.
<!-- #region --> elements <!-- #endregion -->
. Katlanmış bölümdeki # bölgeyi izleyen metni görüntüler. Herhangi bir denklemde parantez gibi, iç içe yerleştirilmiş başkaları olsa bile, geçerli #region'dan karşılık gelen #endregion'a doğru katlanır. İç içe bölgeler için katlama ayarını hatırlar. Ctrl + k + Ctrl + [ve Ctrl + k + Ctrl +] imleçte kıvrımları doğru şekilde kapatır / açar. (Bu bana biraz geriye, ama whatevah gibi görünüyor) Harika şeyler!
Bu özellik artık standart derlemede kullanılabilir. Daralt / genişlet kontrollerinin görünmesini sağlamak için, bu ekran görüntüsünde gösterildiği gibi satır numaralarının hemen sağındaki alanın üzerine fare ile gitmeniz gerekir:
Kullanıcı ayarlarını eklemelisiniz:
{
"editor.showFoldingControls": "always",
"editor.folding": true,
"editor.foldingStrategy": "indentation",
}
Daralt / genişlet için varsayılan kısayol şunlardır:
Ctrl+ Shift+ [: "Katla"
Ctrl+ Shift+ Alt+ [: "Tümünü katla"
Ctrl+ Shift+ ]: "Aç"
Ctrl+ Shift+ Alt+ ]: "Tümünü aç"
Veya keybindings.json adresine gidin ve dilediğiniz gibi değiştirin.
Örneğin:
{
"key": "cmd+k cmd+m",
"command": "editor.foldAll",
"when": "editorFocus"
},
{
"key": "cmd+m cmd+k",
"command": "editor.unfoldAll",
"when": "editorFocus"
},
ctrl+shift+alt+[ "Unfold all"
Bunun [
yerine yazdınız ]
. Yanlışım varsa düzelt.
Kısayollardan hiçbiri çalışmıyorsa (benim gibi), geçici bir çözüm olarak komut paletini ( Ctrl+ 3veya Görünüm -> Komut Paleti ...) de açıp şunu yazabilirsiniz fold all
:
Daraltma artık sürüm 1.0'da desteklenmektedir :
Kaynak Kodu Katlama Kısayolları
Kaynak kodu bölgelerini katlama düzeylerine göre daraltmak için yeni katlama eylemleri vardır.
Seviye 1'i ( Ctrl+ K Ctrl+ 1) seviye 5'e ( Ctrl+ K Ctrl+ 5) katlamak için eylemler vardır . Açmak için Tümünü Aç'ı ( Ctrl+ Shift+ Alt+ ]) kullanın.
Seviye katlama eylemleri geçerli imleci içeren bölgeye uygulanmaz.
Klavyemdeki ]
düğmeyi (Norveç düzeni) bulmakta sorun yaşadım ve benim durumumda Å
düğme oldu. (Veya geri silme düğmesinden başlayarak iki düğme sola ve bir aşağı.)
JavaScript ile:
//#region REGION_NAME
...code here
//#endregion
1.3.1 sürümünden (2016-07-17) itibaren, Blok Daraltması çok daha uygundur.
Girintili bir çizgiyi izleyen herhangi bir satır, daralmaya izin vermek için '-' karakterine sahip olacaktır. Blok daraltılırsa, yerine daraltılmış bloğu açacak bir '+' karakteri gelir.
( Ctrl+ Shift+ Alt+ ]) Yine de bir blok kapanarak tüm blokları etkiler. Tekrarlanan her kullanım bir seviye daha kapattı. ( Ctrl+ Shift+ Alt+ [) Tam tersi şekilde çalışır.
Yaşasın, blok çöküşü sonunda işe yarar.
Burada teknik ipucu yok, sadece VsCode tercihlerinin basit ayarları.
Tercihler'e gidip 'katlama' arayarak kod katlama kontrollerini her zaman VsCode'da göstermeyi başardım. Şimdi her zaman bu kontrolleri göstermeyi seçin. Bu, test ettiğim Angular 8 çözümündeki Şablonlar kodu ve HTML şablonlarıyla çalışır.
Bu, Windows 10 işletim sisteminde çalışan VsCode Insiders 1.37.0 ile test edildi.
v1.42, kıvrımların nasıl göründüğüne ve çalıştığına bazı güzel ayrıntılar ekliyor. Bkz. Https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :
Katlanmış Aralık Vurgulama
Tüm katlanmış aralıklar için arka plan rengi sayesinde katlanmış aralıkları bulmak artık daha kolay.
Katlama vurgu rengi Tema: Koyu +
Özellik, ayar editörü tarafından kontrol edilir.
"workbench.colorCustomizations": { "editor.foldBackground": "#355000" }
Katlanabilir İyileştirmeler
Shift + Click
katlama göstergesinde önce sadece iç aralıkları katlar.Shift + Click
yine (tüm iç aralıklar önceden katlandığında) ebeveyni de katlar.Shift + Click
tekrar herkesi açar.
Katlama komutu (kb (
editor.fold
))] önceden katlanmış bir aralıkta kullanıldığında, bir sonraki katlanmamış üst aralık katlanır.
Mac'te, RHS Komut anahtarı, ⌘K kod katlama komutlarının solu değil, .
Aksi takdirde, sol Komut tuşu geçerli satırı siler ⌘K,.
Visual Studio Code 1.17'den beri bu özellik desteklenmektedir . Kod bloğunuzu katlamak / daraltmak için //#region my block name
ve gibi bölge etiketlerini eklemeniz yeterlidir.//#endregion
TypeScript / JavaScript'te kodlama varsa yeterlidir.
Misal:
VSCode uzantısı: Katlama Seviyesi , istediğiniz seviyeye bir anahtar katlama.
Keşke Visual Studio Code işleyebilir:
#region Function Write-Log
Function Write-Log {
...
}
#endregion Function Write-Log
Şu anda Visual Studio Code bunu yok sayar ve daraltmaz. Bu arada Notepad ++ ve PowerGUI bunu iyi halleder.
Güncelleme: Visual Studio Code için bir güncelleme fark ettim. Bu artık destekleniyor!
Not: bu kısayollar yalnızca keybindings.json öğenizi düzenlerseniz beklendiği gibi çalışır
Varsayılan kısayollardan memnun değildim, aşağıdaki gibi çalışmalarını istedim:
Ayarlamak için:
Preferences: Open Keyboard Shortcuts (JSON)
( Ctrl+ ⇧ Shift+ p)Zaten katlama / açma için özel tuş bağlamalarınız var mı? O zaman onları değiştirmeniz gerekir.
{
"key": "ctrl+alt+]",
"command": "editor.fold",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+alt+[",
"command": "editor.unfold",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+shift+alt+]",
"command": "editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+shift+alt+[",
"command": "editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+k ctrl+[",
"command": "editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+k ctrl+]",
"command": "editor.foldAll",
"when": "editorTextFocus && foldingEnabled"
},
Fold Level
cevabı bana daha mantıklı geldi.