Visual Studio Code - Điều chỉnh cài đặt báo giá nhập


85

Khi làm việc trong TypeScript trong Visual Studio Code, đề xuất nhập trên một loại (được kích hoạt bởi dấu cách + dấu chấm) sẽ tạo ra một phép nhập bằng cách sử dụng dấu ngoặc kép.

Trình liên kết TypeScript của chúng tôi xác minh rằng các dấu ngoặc kép được sử dụng nếu có thể.

Như bạn có thể thấy bên dưới, đề xuất có dấu ngoặc kép ("@angular / ...") Nhập đề xuất với dấu ngoặc kép

Làm cách nào để điều chỉnh cài đặt nhập?


Câu trả lời:


85

Kể từ VSCode 1.10, điều này (đáng buồn là) vẫn chưa thể thực hiện được. Nhưng có vẻ là một vấn đề đối với nhiều người dùng. Chủ đề VSCode đã biết về vấn đề này và bạn có thể theo dõi vấn đề này để biết khi nào nó được triển khai: https://github.com/Microsoft/TypeScript/issues/13270


Cập nhật tháng 6 năm 2018

Kể từ VSCode 1.24 (tháng 6 năm 2018), có một tùy chọn cho việc này!

"typescript.preferences.quoteStyle": "single"

Để biết thêm thông tin, hãy xem:

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


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

7
Điều này dường như không có hiệu lực đối với tôi. Tôi vẫn nhận được dấu ngoặc kép từ các đề xuất và đoạn trích.
John Knoop

Cùng với tôi, thay đổi trên tất cả các cấp possibles (người sử dụng, không gian làm việc, dự án) và vẫn có dấu ngoặc kép :(
Kostanos

Tôi không biết hai bạn đang sử dụng ngôn ngữ nào nhưng có những cài đặt riêng cho javascript và typecript. Tôi đã tự hỏi điều tương tự nhưng tôi đã đặt cài đặt mã javascript chứ không phải chỉ định kiểu.
GhostBytes

53

Bạn cũng có thể định cấu hình dòng bên dưới trong cài đặt người dùng vscode của mình để điều chỉnh cài đặt này.

"prettier.singleQuote": true

3
đẹp là một phần mở rộng, không phải ai cũng sử dụng nó
caub

1
Bực bội khi mọi người cho rằng bạn có hoặc muốn sử dụng Prettier. Trừ khi ai đó hỏi "làm thế nào để tôi với Prettier" - tôi nghĩ tốt nhất không nên trả lời giả sử họ có nó.
Tsar Bomba

@TsarBomba Bạn nói đúng. Cài đặt này yêu cầu tiện ích mở rộng Prettier để điều chỉnh báo giá. marketplace.visualstudio.com/…
Abdllhbyrktr

15

Tôi đã sửa lỗi đó bằng cách sử dụng cấu hình Editor , hãy mở tệp .editorconfig của bạn trong thư mục gốc dự án của bạn (nếu bạn chưa có, hãy tạo tệp đó) và thêm dòng này sau dấu [*]

[*]
...
quote_type = single

Trong wiki, bạn có thể thấy danh sách đầy đủ các thuộc tính.


Đã ủng hộ. Chỉ hạn chế các thay đổi đối với dự án bạn đang thực hiện so với toàn cầu. Lưu ý thêm: khởi động lại VS Code để thay đổi có hiệu lực.
EdSF

Chỉ cần nhận xét, Trong VS Code, bạn cũng có thể đặt các cài đặt không gian làm việc dành riêng cho dự án đó. Điều này sẽ cho phép bạn sử dụng dấu ngoặc đơn / kép cụ thể khi nhập nếu bạn muốn sử dụng kiểu khác ở nơi khác trong tệp. Sự thay đổi .editorconfig sẽ có phạm vi rộng.
Cruril

12

Đối với VS Code 1.21.1, bạn cần chỉnh sửa

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

Trong Windows

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

Trong Windows 10 (vscode phiên bản 1.30. * (Người dùng thiết lập) sau này)

* C: \ Users \ <yourusername> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extensions \ stylescript-basics \ snippets \ stylescript.json

Trong phần 'Nhập mô-đun bên ngoài' của tệp đó, hãy đặt thuộc tính mảng nội dung thành giá trị "import { $0 } from '${1:module}';". Phần sau đó sẽ giống như sau:

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

1
Giải pháp này đã làm việc cho tôi. Theo nghĩa đen, đã thử mọi thứ nhưng chỉ có điều này mới sửa được nó
Sosa

8

Một giải pháp thay thế hỗ trợ cấu hình này là Hộp công cụ TypeScript .

Nó có thể được định cấu hình bằng cách cài đặt genGetSet.pathStringDelimiter, đã có nhập báo giá đơn làm mặc định.


2
Cám ơn vì cái này! Giá trị chỉ ra các genGetSet.spacedImportLinethiết lập như dòng nhập khẩu cũng rất mới trông giống như import { Router }....thay vì mặc địnhimport {Router}...
FLGMwt

1
Cả câu trả lời và bình luận ở trên đều là thông tin tuyệt vời! Cảm ơn hai bạn!
Kris Boyd

7

Đi tới "Tệp> Tùy chọn> Cài đặt" và sau đó thêm cài đặt này trong cài đặt người dùng:

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

Làm việc cho tôi, Cảm ơn! BTW, bạn có thể thêm một liên kết đến cài đặt mặc định có các tùy chọn này: 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

Bạn cũng có thể định cấu hình dòng bên dưới trong cài đặt người dùng vscode của mình để cho phép trích dẫn đơn trong chuỗi.

Đi tới Tùy chọn> Cài đặt người dùng

"prettier.singleQuote": true

Điều này sẽ cho phép trích dẫn duy nhất trong Chuỗi. Ngược lại, nếu bạn thay đổi thủ công tất cả các dấu ngoặc kép thành dấu nháy đơn, nó sẽ hoàn nguyên trong khi lưu. Ngoài ra, hãy thêm

"tslint.autoFixOnSave": true

để tự động sửa trong khi lưu.


1

Điều này đã được thực hiện (như đã đề cập trong một câu trả lời khác)! Nhưng có thể bạn chưa sử dụng phiên bản TypeScript mới nhất.

Giải pháp rất đơn giản:

Nhấp vào số phiên bản TypeScript (ví dụ 2.3.4) giữa "TypeScript" và một hình mặt cười nhỏ ở góc dưới bên phải. Sau đó chuyển sang phiên bản cài sẵn Visual Studio Code (2.5.3 tại thời điểm này).

Sau mã Visual Studio này sẽ suy ra kiểu báo giá nhập bằng cách xem câu lệnh nhập đầu tiên . Lưu ý rằng dù sao thì một nhãn popup nhỏ vẫn sẽ hiển thị dấu ngoặc kép.

Báo cáo lỗi

Yêu cầu kéo có liên quan :

Điều này bổ sung khả năng xác định xem nên sử dụng dấu ngoặc kép đơn hay dấu ngoặc kép cho các lần nhập mới được thêm thông qua các bản sửa mã. Khi một mục nhập mới được thêm vào, chúng tôi sẽ quét các báo cáo trên cùng của tệp nguồn để tìm các khai báo nhập hoặc xuất hiện có với mã định danh mô-đun. Sau đó, chúng tôi sử dụng kiểu trích dẫn của kiểu đầu tiên mà chúng tôi tìm thấy. Nếu không có dữ liệu nhập hiện có nào trong tệp, chúng tôi quay lại sử dụng dấu ngoặc kép.


0

Các giải pháp trên không hoạt động với tôi

Vì vậy, đây là công việc của tôi xung quanh, trong bạn sử dụng vscode,: "tslint.autoFixOnSave"true trong ý muốn của bạn settings.jsonsẽ tự động sửa các trích dẫn nhập này khi bạn lưu tệp.


NóiUnknown Configuration Setting
Edgar Quintero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.