วิธีทำ VS Code ให้ถือว่านามสกุลไฟล์อื่นเป็นภาษาที่แน่นอน


333

หรือมีวิธีการเปลี่ยนภาษาของไฟล์ปัจจุบันเพื่อใช้คุณสมบัติการเน้นไวยากรณ์?

ตัวอย่างเช่น*.jsxใช้ JavaScript จริง แต่ VS Code ไม่รู้จัก

คำตอบ:


501

ในVisual Studio Codeคุณสามารถเพิ่มการเชื่อมโยงไฟล์ถาวรสำหรับการเน้นภาษาไปยังsettings.jsonไฟล์ของคุณดังนี้:

// Place your settings in this file to overwrite the default settings
{
  "some_setting": custom_value,
  ...

  "files.associations": {
    "*.thor": "ruby",
    "*.jsx": "javascript",
    "Jenkinsfile*": "groovy"
  }
}

คุณสามารถใช้Ctrl+ Shift+ แล้วประเภทp settings JSONเลือกการตั้งค่า: เปิดการตั้งค่า (JSON)settings.jsonเพื่อเปิดของคุณ

Files: Associationsคุณลักษณะเป็นครั้งแรกในรุ่นของ Visual Studio รหัส 1.0 (มีนาคม 2016) ตรวจสอบรูปแบบไวด์การ์ดที่มีอยู่ในบันทึกประจำรุ่นและสตริงภาษาที่รู้จักในเอกสาร


6
ค่าสำหรับการเชื่อมโยงต้องเป็น ID ของภาษา / ปลั๊กอินไม่ใช่ชื่อ ตัวอย่างเช่นปลั๊กอิน VBScript ที่ฉันติดตั้ง ID คือ vbs "* .vms": "vbs" รับส่วนขยายที่กำหนดเองเพื่อเชื่อมโยงอย่างถูกต้อง
Matt Merrill

เพิ่งเผชิญกับปัญหาที่คล้ายกัน หากการเพิ่มความสัมพันธ์ของไฟล์ไม่ทำงานให้ตรวจสอบให้แน่ใจว่าคุณไม่ได้.editorconfigปิดไฟล์หรือจัดเรียงการกำหนดค่าระหว่าง VSCode และ.editorconfigตัวหลังจะมีความสำคัญกว่า
RecuencoJones

คุณยังสามารถตั้งค่าเหล่านี้ใน${projectdir}/.vscode/settings.jsonไฟล์เฉพาะโครงการ
เจสัน

108

กด Ctrl + Shift + P (หรือ cmd บน Mac) ค้างไว้เลือก "เปลี่ยนโหมดภาษา" และเลือกที่นั่น

แต่ฉันก็ยังหาวิธีที่จะทำให้ไฟล์ VS Code รู้จักกับนามสกุลเฉพาะเป็นบางภาษา


3
ดูเหมือนว่าจะมีทางลัดไปยังChange Language Mode; Alt+K, M
Stafford Williams

Cmd+K, Mสำหรับ Mac
GreeKatrina

เป็นไปได้มาก ดูคำตอบของฉันด้านล่าง: stackoverflow.com/a/51228725/3307796
JoelAZ

69

วิธีที่ง่ายที่สุดที่ฉันพบสำหรับการเชื่อมโยงทั่วโลกคือเพียงแค่ ctrl + km (หรือ ctrl + shift + p และพิมพ์ "โหมดเปลี่ยนภาษา") ด้วยไฟล์ประเภทที่คุณกำลังเปิดอยู่

ในการเลือกแรกจะเป็น "กำหนดค่าการเชื่อมโยงไฟล์สำหรับ 'x'" (ประเภทไฟล์ใด - ดูภาพที่แนบมา) การเลือกสิ่งนี้จะทำให้ความสัมพันธ์ของไฟล์ถาวร

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้อาจมีการเปลี่ยนแปลง (อาจเป็นไปได้) ตั้งแต่คำถามดั้งเดิมและคำตอบที่ยอมรับ (และฉันไม่รู้ว่ามันเปลี่ยนไปเมื่อใด) แต่มันง่ายกว่าขั้นตอนการแก้ไขด้วยตนเองในคำตอบที่ยอมรับและคำตอบอื่น ๆ เพื่อ muss ด้วย ID ที่อาจไม่ชัดเจน


2
ขอบคุณ - มันใช้งานได้สำหรับฉัน ไม่ชัดเจนเมื่อแก้ไขsettings.jsonไฟล์ด้วยตนเองว่าควรจะใช้ ID ส่วนขยายใด แต่วิธีนี้จัดเรียงไว้!
ccbunney

1
คุณยินดี @ccbunney ดีใจที่ได้ช่วยเหลือ นั่นเป็นปัญหาเดียวกันกับที่ฉันมี - และฉันไม่เคยเข้าใจรหัสส่วนขยายที่ฉันต้องการฮ่า ๆ อย่างไรก็ตามฉันดีใจที่ได้พบโซลูชันนี้สำหรับตัวเองและมันก็เจ๋งที่มันช่วย ppl อื่น! : D
JoelAZ

33

เช่น:

// .vscode/settings.json in workspace

{
  "files.associations": {
    "*Container.js": "javascriptreact",
    "**/components/*/*.js": "javascriptreact",
    "**/config/routes.js": "javascriptreact"
  }
}

1
ดี สิ่งนี้มีประโยชน์หากคุณมีส่วนขยายเหมือนกัน แต่มีตัวแยกวิเคราะห์ภาษาที่แตกต่างกันตามเส้นทาง เช่นคุณสามารถมี yml เพื่อจัดการท่อ Concourse ในโฟลเดอร์หนึ่งและไฟล์ Ansible ในอีกโฟลเดอร์หนึ่ง
Christian Maslen

ฉันจะลงคะแนนสองครั้งนี้ถ้าทำได้ เคยพยายามที่จะคงรูปแบบของ Nanoc layout และ partials ด้วย. html เอาไว้, มันแก้ไขได้: "**/layouts/**/*.html": "erb"- น่าสังเกตว่าดรอปดาวน์ VSCode "โหมดภาษา" แสดงชื่อจริงของปากกาเน้นข้อความในวงเล็บเช่นRuby ERB (erb)
Dave Everitt


12

ตัวอย่างเช่นนี้จะทำให้ไฟล์สิ้นสุด.variablesและ.overridesได้รับการปฏิบัติเช่นเดียวกับไฟล์ LESS อื่น ๆ ในแง่ของการกำหนดสีในแง่ของการจัดรูปแบบ (อัตโนมัติ) กำหนดในการตั้งค่าผู้ใช้หรือการตั้งค่าโครงการตามที่คุณต้องการ

(Semantic UI ใช้ส่วนขยายแปลก ๆ เหล่านี้ในกรณีที่คุณสงสัย)



8

ทำตามขั้นตอนใน https://code.visualstudio.com/docs/customization/colorizer#_common-questionsทำงานได้ดีสำหรับฉัน:

หากต้องการขยาย colorizer ที่มีอยู่คุณจะต้องสร้าง package.json อย่างง่ายในโฟลเดอร์ใหม่ภายใต้. vscode / extensions และให้แอตทริบิวต์ extensionDependencies ที่ระบุการปรับแต่งที่คุณต้องการเพิ่ม ในตัวอย่างด้านล่างส่วนขยาย. mmd จะถูกเพิ่มไปยัง colorizer ของ markdown โปรดทราบว่าไม่เพียง แต่ชื่อ extensionDependency ต้องตรงกับการปรับแต่งเท่านั้น แต่ยังต้องใช้รหัสภาษาที่ตรงกับรหัสภาษาของ colorizer ที่คุณกำลังขยาย

{
    "name": "MyMarkdown",
    "version": "0.0.1",
    "engines": {
        "vscode": "0.10.x"
    },
    "publisher": "none",
    "extensionDependencies": [
        "markdown"
    ],
    "contributes": {
        "languages": [{
            "id": "markdown",
            "aliases": ["mmd"],
            "extensions": [".mmd"]
        }]
    }
}

5

ฉันได้ปฏิบัติตามแนวทางที่แตกต่างเพื่อแก้ไขปัญหาเดียวกันในกรณีของฉันฉันได้สร้างส่วนขยายใหม่ที่เพิ่มการเน้นไวยากรณ์ของ PHP ที่สนับสนุนไฟล์เฉพาะ Drupal (เช่น. โมดูลและ. inc): https: // github co.th / mastazi / VS-รหัส Drupal

อย่างที่คุณเห็นในรหัสฉันสร้างส่วนขยายใหม่แทนที่จะแก้ไขส่วนขยาย PHP ที่มีอยู่ เห็นได้ชัดว่าฉันประกาศพึ่งพาส่วนขยาย PHP ในส่วนขยายของ Drupal

ข้อดีของการทำเช่นนี้คือถ้ามีการอัพเดท PHP ส่วนขยายการสนับสนุน Drupal ของฉันจะไม่หายไปในกระบวนการอัปเดต

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