Visual Studio Code - İçe aktarma teklifi ayarını ayarla


85

Visual Studio Code'da TypeScript'te çalışırken, bir türdeki içe aktarma önerisi (boşluk + nokta tarafından tetiklenen) çift tırnak kullanarak bir içe aktarma oluşturur.

TypeScript linter'ımız, mümkün olduğunda tek tırnakların kullanıldığını doğrular.

Aşağıda görebileceğiniz gibi, öneride çift tırnak işareti var ("@angular / ...") Öneriyi çift tırnak ile içe aktarın

İçe aktarma ayarını nasıl değiştirebilirim?


Yanıtlar:


87

VSCode 1.10'dan itibaren, bu (ne yazık ki) henüz mümkün değil. Ancak göründüğü gibi birçok kullanıcı için bir sorundur. VSCode teması bu sorunun farkındadır ve uygulandığında bunu takip edebilirsiniz: https://github.com/Microsoft/TypeScript/issues/13270


Haziran 2018 Güncellemesi

VSCode 1.24'ten (Haziran 2018) bu yana bunun için bir seçenek var!

"typescript.preferences.quoteStyle": "single"

Daha fazla bilgi için bkz .:

https://code.visualstudio.com/updates/v1_24#_preferences-for-auto-imports-and-generated-code


22
"typescript.preferences.quoteStyle": "single"
Niko

7
Bu benim için etkili görünmüyor. Hala önerilerden ve snippet'lerden çift alıntı alıyorum.
John Knoop

Benim için aynı, tüm olasılık seviyelerinde (kullanıcı, çalışma alanı, proje) değişti ve hala çift tırnak var :(
Kostanos

İkinizin hangi dili kullandığınızı bilmiyorum ama javascript ve typcript için ayrı ayarlar var. Ben de aynı şeyi merak ediyordum ama typcript'i değil javascript kod ayarını yaptım.
GhostBytes

53

Bu ayarı yapmak için vscode kullanıcı ayarlarınızda aşağıdaki satırı da yapılandırabilirsiniz.

"prettier.singleQuote": true

3
güzel bir uzantıdır, herkes kullanmaz
caub

1
İnsanların Prettier'a sahip olduğunuzu veya kullanmak istediğinizi varsayması sinir bozucu. Birisi "Prettier ile nasıl olurum" diye sormadıkça - bence ellerinde olduğunu varsayarak cevap vermemek en iyisidir.
Tsar Bomba

@TsarBomba Haklısın. Bu ayar, teklifi ayarlamak için Prettier uzantısı gerektirir. marketplace.visualstudio.com/…
abdllhbyrktr

15

Düzenleyici yapılandırmasını kullanarak bunu düzelttim, proje kök dizininizde .editorconfig dosyanızı açın (sahip değilseniz, bu dosyayı oluşturun) ve bu satırı [*]

[*]
...
quote_type = single

Gelen wiki mülkünüz tam listesini görebilirsiniz.


Olumlu oy verildi. Değişiklikleri yalnızca üzerinde çalıştığınız projeyle küresel olarak kısıtlar. Ek not: Değişikliklerin yürürlüğe girmesi için VS Code'u yeniden başlatın .
EdSF

Sadece yorum yapmak gerekirse, VS Code'da o projeye özgü çalışma alanı ayarlarını da yapabilirsiniz. Bu, diğer türü dosyaların içinde başka bir yerde kullanmak istiyorsanız, özellikle içe aktarmada tek / çift tırnak kullanmanıza izin verecektir. .Editorconfig değişikliği proje çapında olacaktır.
Cruril

12

VS Code 1.21.1'den itibaren, düzenlemeniz gerekir

/usr/share/code/resources/app/extensions/typescript-basics/snippets/typescript.json

Windows'ta

/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/snippets/typescript.json .

Windows 10'da (vscode sürüm 1.30. * (Kullanıcı kurulumu) daha sonra)

* C: \ Kullanıcılar \ <kullanıcı adınız> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extensions \ typescript-basics \ snippetpets \ typescript.json

Bu dosyanın "Harici modülü içe aktar" bölümünde, body array özelliğini değer yapın "import { $0 } from '${1:module}';". Bölüm daha sonra şu şekilde görünecektir:

"Import external module.": {
    "prefix": "import statement",
    "body": [
        "import { $0 } from '${1:module}';"
    ],
    "description": "Import external module."
},

1
Bu çözüm benim için çalıştı. Kelimenin tam anlamıyla her şeyi denedim ama sadece bu onu düzeltti.
Sosa

8

Bu yapılandırmayı destekleyen bir alternatif TypeScript Toolbox'tır .

genGetSet.pathStringDelimiterVarsayılan olarak tek tırnaklı içe aktarmaya sahip olan ayarlanarak yapılandırılabilir .


2
Bunun için teşekkürler! genGetSet.spacedImportLineAyarı da belirtmeye değer, böylece yeni içe aktarma satırları import { Router }....varsayılan yerine benziyorimport {Router}...
FLGMwt

1
Yukarıdaki hem cevap hem de yorum harika bilgiler! İkinize teşekkürler!
Kris Boyd

7

"Dosya> Tercihler> Ayarlar" a gidin ve ardından bunu kullanıcı ayarlarının altına ekleyin:

"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"

Benim için çalışıyor, teşekkürler! BTW, şu seçenekleri sunan varsayılan ayarlara bir bağlantı ekleyebilirsiniz: code.visualstudio.com/docs/getstarted/settings . // Preferred quote style to use for quick fixes: 'single' quotes, 'double' quotes, or 'auto' infer quote type from existing imports. Requires using TypeScript 2.9 or newer in the workspace.
Mosh Feu


2

Dize içinde tek alıntıya izin vermek için vscode kullanıcı ayarlarınızda aşağıdaki satırı da yapılandırabilirsiniz.

Tercihler> Kullanıcı Ayarları'na gidin

"prettier.singleQuote": true

Bu, String'de tek alıntıya izin verir. Aksi takdirde, tüm çift tırnak işaretlerini manuel olarak tek tırnak işaretine değiştirirseniz, kaydederken geri dönecektir. Ayrıca ekleyin

"tslint.autoFixOnSave": true

kaydederken otomatik düzeltmek için.


1

Bu zaten uygulandı (başka bir yanıtta belirtildiği gibi)! Ancak muhtemelen henüz TypeScript'in en son sürümünü kullanmıyorsunuz.

Çözüm basit:

Sağ alt köşede "TypeScript" ile küçük bir gülen yüz arasında TypeScript sürüm numarasını (örneğin 2.3.4) tıklayın. Ardından, Visual Studio Code yerleşik sürümüne geçin (şu anda 2.5.3).

Bu Visual Studio kodundan sonra , ilk içe aktarma ifadesine bakarak içe aktarma teklifi stilini çıkarır . Küçük bir açılır etiketin yine de çift tırnak göstereceğini unutmayın.

Hata raporu

İlgili çekme isteği :

Bu, kod düzeltmeleriyle eklenen yeni içe aktarmalar için tek veya çift tırnak kullanılıp kullanılmayacağını belirleme yeteneği ekler. Yeni bir içe aktarma eklendiğinde, kaynak dosyanın en üstteki ifadelerini, modül belirticileriyle mevcut ithalat veya ihracat beyanları için tararız. Daha sonra bulduğumuz ilk teklif stilini kullanırız. Dosyada mevcut içe aktarma yoksa, çift tırnak kullanmaya geri döneriz.


0

Yukarıdaki çözümler benim için işe yaramadı

İşte benim çalışmam, vscode kullandığınızda, "tslint.autoFixOnSave" : true settings.json, dosyayı kaydettiğinizde bu içe aktarma tekliflerini otomatik olarak düzeltir.


Diyor kiUnknown Configuration Setting
Edgar Quintero
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.