วิธีกำหนดชนิดไฟล์ให้สัมพันธ์กับไวยากรณ์ใน Sublime Text


517

ฉันต้องการให้เครื่องมือแก้ไข Sublime 2 จัดการไฟล์ * .sbt (เพื่อเน้นไวยากรณ์) เป็นภาษา Scala เช่นเดียวกับ * .scala แต่ฉันไม่สามารถหาที่ตั้งได้ คุณรู้หรือไม่?


6
มันซ้ำซ้อนของ: stackoverflow.com/q/7574502/1346682
Nicolas Malbran

คำตอบ:


1166

ใน Sublime Text (ยืนยันในทั้ง v2.x และ v3.x) มีคำสั่งเมนู:

ดู -> ไวยากรณ์ -> เปิดทั้งหมดด้วยส่วนขยายปัจจุบันเป็น ...


18
คุณมีความคิดใด ๆ ว่าสิ่งนี้สะท้อนให้เห็นในไฟล์กำหนดค่าข้อความประเสริฐ? ฉันพยายามที่จะทำสิ่งนี้ให้สำเร็จด้วยสูตรอาหารอัตโนมัติและฉันไม่สามารถคิดได้ว่าจะตั้งค่าอย่างไรในการตั้งค่า JSON
แบรด

24
ทำงานเหมือนกันใน Sublime Text 3 เช่นกัน ขอบคุณ @TedG
fusion27

11
@brad เปิดการตั้งค่าเฉพาะไวยากรณ์ (Scala.sublime-settings ในโฟลเดอร์ผู้ใช้) และเพิ่มลงในพวกเขา: {"ส่วนขยาย": ["scala", "sbt"]}
omittones

5
ยังใช้งานไม่ได้ตามที่คาดไว้สำหรับชื่อไฟล์ที่มีนามสกุลสอง การแก้ไข*.sublime-settings ไม่ทำงาน
MM

9
คุณจะตั้งค่าไวยากรณ์เริ่มต้นสำหรับไฟล์ที่ไม่มีนามสกุลได้อย่างไร?
ขบวนแห่

38

ฉันพบคำตอบ (โดยการตรวจสอบโครงสร้างไฟล์กำหนดค่า Sublime 2 เพิ่มเติม):

ฉันจะเปิด

~/.config/sublime-text-2/Packages/Scala/Scala.tmLanguage

และแก้ไขเพื่อเพิ่มsbt(ส่วนขยายของไฟล์ที่ฉันต้องการเปิดเป็นไฟล์รหัส Scala) ไปยังอาร์เรย์หลังจากfileTypesคีย์:

<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
  <array>
    <string>scala</string>
    <string>sbt</string>
  <array>
  ...

PS: อาจจะมีวิธีที่ดีกว่าบางอย่างเช่นสถานที่ที่เหมาะสมที่จะนำการปรับแต่งของฉัน


1
ตอนนี้อยู่ใน/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Guillaume Massé

2
ผมคิดว่าเป็นห้องสมุดที่ใช้มากกว่าระบบห้องสมุด:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Seren

4
@Eric คุณควรอ่านให้ละเอียดมากขึ้น .. มันเปิดไฟล์ทั้งหมดที่มีนามสกุลเฉพาะพร้อมกับไวยากรณ์ที่ระบุ ส่วนใหญ่แล้วนี่คือสิ่งที่คุณต้องการ
Vincent Ketelaars

28

ฉันใส่การเปลี่ยนแปลงที่กำหนดเองของฉันในแพ็คเกจผู้ใช้:

*nix: ~/.config/sublime-text-2/Packages/User/Scala.tmLanguage
*Windows: %APPDATA%\Sublime Text 2\Packages\User\Scala.tmLanguage

ซึ่งหมายความว่าอยู่ในรูปแบบ JSON:

{
  "extensions":
  [
    "sbt"
  ]
}

ที่นี่เป็นสถานที่เดียวกัน

View -> Syntax -> Open all with current extension as ...

รายการเมนูเพิ่ม (สร้างไฟล์หากไม่มี)


2
โปรดทราบว่านี่เป็นวิธีการเดียวเท่านั้น (อย่างน้อยใน ST2) ที่อนุญาตให้ตั้งค่าไวยากรณ์เฉพาะสำหรับไฟล์ที่มีนามสกุลเป็นสองเท่า (ตัวอย่างเช่นwhatever.twig.html) เนื่องจากวิธีเมนูใช้เฉพาะไฟล์ล่าสุดเท่านั้น!
MM

1
ผมพบว่างานนี้กับ Sublime ข้อความ 3. ผมใช้View -> Syntax -> Open all with current extension as ...ในการสร้างไฟล์ภาษาMarkdown.sublime-settingsใน~/Library/Application Support/Sublime Text 3/Packages/User/แล้วแก้ไขไฟล์นี้เพื่อเพิ่มนามสกุลไฟล์พิเศษ
Jake Rayson

13

มีปลั๊กอินที่ยอดเยี่ยมที่เรียกว่าApplySyntax (ก่อนหน้า DetectSyntax) ที่ให้สิ่งอื่น ๆ บางอย่างสำหรับการจับคู่ไวยากรณ์ไฟล์ อนุญาตการแสดงออกของ regex เป็นต้น


9

มีวิธีที่รวดเร็วในการตั้งค่าไวยากรณ์: Ctrl+ Shift+ Pจากนั้นพิมพ์ในกล่องอินพุต

ss + (คุณต้องการตั้งค่าประเภทใด)

เช่น: ss html +Enter

และssหมายถึง "set syntax"

มันเร็วกว่าการเช็คอินในช่องทำเครื่องหมายของเมนู


7

สำหรับ ST3

$ language = "ต้องการให้ภาษา"

ถ้ามี

ไปที่ ~ / .config / sublime-text-3 / แพ็คเกจ / ผู้ใช้ / $ ภาษา. sublime-settings

อื่น

สร้าง ~ / .config / sublime-text-3 / แพ็คเกจ / ผู้ใช้ / $ ภาษา. sublime-settings

และตั้งค่า

{"ส่วนขยาย": [" yourextension "]}

วิธีนี้ช่วยให้คุณเปิดใช้งานไวยากรณ์สำหรับส่วนขยายคอมโพสิต (เช่น sql.mustache, js.php, ฯลฯ ... )


2
ดังนั้นหากต้องการเชื่อมโยงไฟล์. js.php กับ JavaScript ฉันควรสร้างไฟล์ชื่อ Javascript.sublime-settings ที่เต็มไปด้วย{ "extensions": [ "js.php" ] }?
Austin Schmidt

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