Код Visual Studio - відрегулюйте параметр пропозиції імпорту


85

Під час роботи з TypeScript у коді Visual Studio пропозиція імпортування типу (ініційована пробілом + періодом) генерує імпорт із використанням подвійних лапок.

Наш лінтер TypeScript перевіряє, що там, де це можливо, використовуються одинарні лапки.

Як ви можете бачити нижче, пропозиція має подвійні лапки ("@angular / ...") Імпорт пропозиції з подвійними лапками

Як я можу відрегулювати налаштування імпорту?


Відповіді:


85

На VSCode 1.10 це (на жаль) поки неможливо. Але це проблема для багатьох користувачів, як здається. Тема VSCode обізнана з цією проблемою, і ви можете слідкувати за нею, щоб знати, коли вона буде реалізована: https://github.com/Microsoft/TypeScript/issues/13270


Оновлення в червні 2018 року

З VSCode 1.24 (червень 2018 р.) Є можливість для цього!

"typescript.preferences.quoteStyle": "single"

Для отримання додаткової інформації див.

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


22
"typescript.preferences.quoteStyle": "single"
Ніко

7
Здається, це не набуває чинності для мене. Я все ще отримую подвійні лапки з пропозицій та фрагментів.
Джон

Те саме для мене, змінено на всіх можливих рівнях (користувач, робоча область, проект) і все ще має подвійні лапки :(
Костанос

Я не знаю, якою мовою ви користуєтесь удвох, але для JavaScript та машинопису існують окремі налаштування. Мені було цікаво те саме, але я встановив налаштування коду javascript, а не машинопис.
GhostBytes

53

Ви також можете налаштувати нижченаведений рядок у налаштуваннях користувача vscode, щоб налаштувати цей параметр.

"prettier.singleQuote": true

3
красивіше - це розширення, не всі його використовують
caub

1
Невдоволення тим, що люди припускають, що ти маєш або хочеш використовувати Prettier. Якщо хтось не запитає "як мені з Prettier" - я вважаю, що краще не відповідати, припускаючи, що вони його мають.
Цар Бомба

@TsarBomba Ви маєте рацію. Цей параметр вимагає розширення Prettier для коригування котирувань. marketplace.visualstudio.com/…
abdllhbyrktr

15

Я виправив, що за допомогою конфігурації редактора відкрийте файл .editorconfig у кореневому каталозі проекту (якщо у вас його немає, створіть цей файл) і додайте цей рядок після [*]

[*]
...
quote_type = single

У вікі ви можете побачити повний перелік властивостей.


Прихильний. Обмежує зміни лише тим, над яким проектом ви працюєте, а не глобально. Додаткова примітка: перезапустіть код VS, щоб зміни вступили в силу.
EdSF

Щоб лише прокоментувати, у VS Code ви також можете встановити параметри робочої області, які є специфічними для цього проекту. Це дозволить вам використовувати одинарні / подвійні лапки спеціально для імпорту, якщо ви хочете використовувати інший тип в іншому місці у файлах. Зміна .editorconfig стосуватиметься проекту.
Cruril

12

З VS Code 1.21.1 потрібно редагувати

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

У Windows

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

У Windows 10 (версія vscode 1.30. * (Налаштування користувача) пізніше)

* C: \ Users \ <користувацькеім'я> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extension \ typecript-basics \ snippets \ typescript.json

У розділі «Імпорт зовнішнього модуля» цього файлу зробіть властивість масиву тіла значенням "import { $0 } from '${1:module}';". Розділ тоді виглядатиме так:

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

1
Це рішення спрацювало для мене. Буквально пробував все, але лише це виправляло.
Соса

8

Альтернативою, яка підтримує цю конфігурацію, є TypeScript Toolbox .

Він налаштовується за допомогою параметра genGetSet.pathStringDelimiter, який вже має імпорт із однією лапкою за замовчуванням.


2
Дякую за це! Варто також вказати на genGetSet.spacedImportLineналаштування, щоб нові рядки імпорту виглядали import { Router }....замість типовихimport {Router}...
FLGMwt

1
І відповідь, і коментар вище - чудова інформація! Дякую вам двоє!
Kris Boyd

7

Перейдіть до "Файл> Налаштування> Налаштування", а потім додайте це в налаштуваннях користувача:

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

Працює для мене, дякую! До речі, ви можете додати посилання на налаштування за замовчуванням, які представляють ці параметри: 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

Ви також можете налаштувати наведений нижче рядок у налаштуваннях користувача vscode, щоб дозволити одинарну лапку в рядку.

Перейдіть до Налаштування> Налаштування користувача

"prettier.singleQuote": true

Це дозволить одинарну лапку в рядку. В іншому випадку, якщо вручну змінити всі подвійні лапки на одинарні, вони повернуться назад при збереженні. Також додайте

"tslint.autoFixOnSave": true

для автоматичного виправлення при збереженні.


1

Це вже впроваджено (про що згадувалося в іншій відповіді)! Але ви, мабуть, ще не користуєтесь останньою версією TypeScript.

Рішення просте:

Клацніть номер версії TypeScript (наприклад, 2.3.4) між "TypeScript" та маленьким смайликом у правому нижньому куті. Потім перейдіть на вбудовану версію Visual Studio Code (на даний момент 2.5.3).

Після цього код Visual Studio зробить висновок про стиль цитування імпорту, переглянувши перший оператор імпорту . Зверніть увагу, що маленька спливаюча мітка все одно відображатиме подвійні лапки.

Повідомлення про помилку

Відповідний запит на витяг :

Це додає можливість визначати, чи використовувати одинарні або подвійні лапки для нового імпорту, доданого за допомогою виправлення коду. Коли додається новий імпорт, ми перевіряємо найпопулярніші оператори вихідного файлу на наявність наявних декларацій імпорту чи експорту за допомогою специфікаторів модулів. Потім ми використовуємо стиль цитати першого, що знаходимо. Якщо у файлі немає існуючих імпортів, ми повертаємось до використання подвійних лапок.


0

Вищевказані рішення для мене не працювали

Отже, це моя робота, коли ви використовуєте vscode,: "tslint.autoFixOnSave"true у вас settings.jsonавтоматично виправлятиме ці цитати імпорту при збереженні файлу.


КажеUnknown Configuration Setting
Едгар Кінтеро,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.