Visual Studio Code - ปรับการตั้งค่าใบเสนอราคานำเข้า


85

เมื่อทำงานใน TypeScript ใน Visual Studio Code คำแนะนำการนำเข้าในประเภท (ทริกเกอร์โดยเว้นวรรค + ระยะเวลา) จะสร้างการนำเข้าโดยใช้เครื่องหมายคำพูดคู่

ลินเตอร์ TypeScript ของเราตรวจสอบว่ามีการใช้เครื่องหมายคำพูดเดี่ยวเมื่อเป็นไปได้

ดังที่คุณเห็นด้านล่างคำแนะนำมีเครื่องหมายคำพูดคู่ ("@angular / ... ") นำเข้าคำแนะนำด้วยเครื่องหมายคำพูดคู่

ฉันจะปรับการตั้งค่าการนำเข้าได้อย่างไร


คำตอบ:


88

สำหรับ VSCode 1.10 สิ่งนี้ (น่าเศร้า) ยังไม่สามารถทำได้ แต่เป็นปัญหาสำหรับกลุ่มผู้ใช้ที่ดูเหมือนว่า ธีม VSCode ตระหนักถึงปัญหานี้และคุณสามารถทำตามสิ่งนี้เพื่อให้ทราบเมื่อมีการใช้งาน: https://github.com/Microsoft/TypeScript/issues/13270


อัปเดตมิถุนายน 2561

ตั้งแต่ 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"
Niko

7
ดูเหมือนจะไม่มีผลกับฉัน ฉันยังคงได้รับคำแนะนำสองเท่าจากคำแนะนำและตัวอย่าง
John Knoop

เช่นเดียวกับฉันเปลี่ยนในทุกระดับที่เป็นไปได้ (ผู้ใช้พื้นที่ทำงานโครงการ) และยังคงมีเครื่องหมายคำพูดคู่ :(
Kostanos

ฉันไม่รู้ว่าคุณสองคนใช้ภาษาอะไร แต่มีการตั้งค่าแยกต่างหากสำหรับจาวาสคริปต์และชนิดสคริปต์ ฉันสงสัยในสิ่งเดียวกัน แต่ฉันตั้งค่าการตั้งค่ารหัสจาวาสคริปต์ไม่ใช่ typescript
GhostBytes

53

คุณยังสามารถกำหนดค่าบรรทัดด้านล่างในการตั้งค่าผู้ใช้ vscode ของคุณเพื่อปรับการตั้งค่านี้

"prettier.singleQuote": true

3
สวยกว่าเป็นส่วนเสริมไม่ใช่ทุกคนใช้
caub

1
น่าผิดหวังที่ผู้คนคิดว่าคุณมีหรือต้องการใช้ Prettier เว้นแต่จะมีคนถามว่า "ฉันจะทำอย่างไรกับ Prettier" - ฉันคิดว่าดีที่สุดที่จะไม่ตอบโดยสมมติว่าพวกเขามี
Tsar Bomba

@TsarBomba คุณพูดถูก การตั้งค่านี้ต้องใช้ส่วนขยายที่ดีกว่าสำหรับการปรับใบเสนอราคา marketplace.visualstudio.com/…
abdllhbyrktr

15

ฉันแก้ไขโดยใช้Editor configเปิดไฟล์. editorconfigในไดเร็กทอรีรูทโปรเจ็กต์ของคุณ (ถ้าคุณไม่มีให้สร้างไฟล์นั้น) และเพิ่มบรรทัดนี้หลัง[*]

[*]
...
quote_type = single

ในวิกิคุณสามารถดูรายการคุณสมบัติทั้งหมด


โหวตแล้ว จำกัด การเปลี่ยนแปลงเฉพาะโครงการที่คุณกำลังดำเนินการเทียบกับทั่วโลก หมายเหตุเพิ่มเติม: รีสตาร์ท VS Codeเพื่อให้การเปลี่ยนแปลงมีผล
EdSF

เพียงเพื่อแสดงความคิดเห็นใน VS Code คุณสามารถตั้งค่าพื้นที่ทำงานเฉพาะสำหรับโปรเจ็กต์นั้นได้เช่นกัน วิธีนี้จะช่วยให้คุณใช้เครื่องหมายคำพูดเดี่ยว / คู่โดยเฉพาะในการนำเข้าหากคุณต้องการใช้ประเภทอื่นที่อื่นภายในไฟล์ การเปลี่ยนแปลง. editorconfig จะกว้างทั้งโครงการ
Cruril

13

ในรหัส VS 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 \ <yourusername> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extensions \ typescript-Basis \ snippets \ typescript.json

ในส่วน 'นำเข้าโมดูลภายนอก' ของไฟล์นั้นทำให้คุณสมบัติ body array เป็นค่า"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"

ใช้ได้ผลสำหรับฉันขอบคุณ! BTW คุณสามารถเพิ่มลิงค์ไปยังการตั้งค่าเริ่มต้นที่นำเสนอตัวเลือกเหล่านี้: 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

สิ่งนี้จะอนุญาตให้มีเครื่องหมายคำพูดเดียวใน String มิฉะนั้นหากคุณเปลี่ยนเครื่องหมายคำพูดคู่ทั้งหมดเป็นคำพูดเดี่ยวด้วยตนเองระบบจะเปลี่ยนกลับขณะบันทึก นอกจากนี้เพิ่ม

"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
Edgar Quintero
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.