अन्य फ़ाइल एक्सटेंशन को निश्चित भाषा के रूप में मानने के लिए VS कोड कैसे बनाया जाए?


332

या सिंटैक्स हाइलाइट सुविधा का उपयोग करने के लिए वर्तमान फ़ाइल की भाषा को स्विच करने का एक तरीका है?

उदाहरण के लिए, *.jsxवास्तव में जावास्क्रिप्ट का उपयोग करता है , लेकिन वी.एस. कोड इसे नहीं पहचानता है।

जवाबों:


500

में दृश्य स्टूडियो कोड , आप अपने को उजागर करने के लिए भाषा लगातार फ़ाइलों के समूह में जोड़ सकते हैं 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सुविधा पहले दृश्य स्टूडियो कोड संस्करण 1.0 (मार्च 2016) में पेश किया गया था। जारी नोटों में उपलब्ध वाइल्डकार्ड पैटर्न और प्रलेखन में ज्ञात भाषा तार की जाँच करें।


6
एसोसिएशन के लिए मूल्य भाषा / प्लगइन की आईडी होना चाहिए, नाम नहीं। उदाहरण के लिए मैंने जो VBScript प्लगइन स्थापित किया है, वह आईडी है। * ".vms": "vbs" को ठीक से संबद्ध करने के लिए कस्टम एक्सटेंशन मिलता है।
मैट मेरिल

बस एक ऐसे ही मुद्दे का सामना करना पड़ा। यदि कोई फ़ाइल एसोसिएशन जोड़ने से काम नहीं लगता है, तो सुनिश्चित करें कि आपके पास कोई .editorconfigफ़ाइल बंद नहीं है , या VSCode और के बीच कॉन्फ़िगरेशन को संरेखित करें .editorconfig, और बाद में पूर्ववर्तीता होगी
RecuencoJones

आप इन सेटिंग्स को किसी प्रोजेक्ट विशिष्ट ${projectdir}/.vscode/settings.jsonफ़ाइल में भी रख सकते हैं ।
जेसन

108

Ctrl + Shift + P (या मैक पर cmd) दबाए रखें, "भाषा मोड बदलें" चुनें और यह वहाँ है।

लेकिन मैं अभी भी वीएस कोड को कुछ विशिष्ट भाषा के रूप में विशिष्ट विस्तार के साथ मान्यता प्राप्त फ़ाइलों को बनाने का एक तरीका नहीं खोज सकता।


3
ऐसा प्रतीत होता है कि वहाँ सीधे एक शॉर्टकट है Change Language Mode; Alt+K, M
स्टेफोर्ड विलियम्स

Cmd+K, Mमैक के लिए।
ग्रीकाट्रीना

यह बहुत संभव है। नीचे मेरा जवाब देखें: stackoverflow.com/a/51228725/3307796
जोलाज़

69

ग्लोबल एसोसिएशन के लिए मैंने जो सबसे आसान तरीका खोजा है, वह उस प्रकार की फ़ाइल के साथ बस ctrl + km (या ctrl + shift + p और टाइप "चेंज लैंग्वेज मोड") है, जिसे आप खुले में जोड़ रहे हैं।

पहले चयनों में "'x' के लिए फ़ाइल संघ को कॉन्फ़िगर करें" (जो भी फ़ाइल प्रकार - छवि संलग्न देखें) का चयन करने से फ़िलाटाइप एसोसिएशन स्थायी हो जाती है

यहां छवि विवरण दर्ज करें

मूल प्रश्न और स्वीकृत उत्तर (और मुझे पता नहीं है कि यह कब बदल गया) के बाद से यह (शायद किया गया) बदल गया हो सकता है, लेकिन स्वीकृत और कुछ अन्य उत्तरों में मैनुअल संपादन चरणों की तुलना में यह इतना आसान है, और कुल मिलाकर होने से बचा जाता है। आईडी है कि स्पष्ट नहीं हो सकता है के साथ समझौता करना।


2
धन्यवाद - यह मेरे लिए काम किया। यह स्पष्ट नहीं था कि settings.jsonफ़ाइल को मैन्युअल रूप से संपादित करते समय एक्सटेंशन आईडी क्या होनी चाहिए, लेकिन इस विधि ने इसे सॉर्ट किया!
ccbunney

1
आपका स्वागत है @ccbunney, खुशी है कि यह मदद करता है। यह ठीक वैसी ही समस्या थी जैसी मुझे थी - और मैंने कभी भी उस विस्तार आईडी का पता नहीं लगाया जिसकी मुझे जरूरत थी, योग्य। वैसे भी, मुझे अपने लिए यह समाधान पाकर खुशी हुई और यह अच्छा है कि यह अन्य पीपीएल की मदद कर रहा है! : डी
जोलाज

33

उदाहरण के लिए:

// .vscode/settings.json in workspace

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

1
अच्छा लगा। यदि आपके पास समान एक्सटेंशन है, लेकिन यह पथ के आधार पर अलग-अलग भाषा पार्सर के काम में आता है। उदाहरण के लिए, आपके पास एक फ़ोल्डर में सम्‍मिलित पाइपलाइनों को संभालने के लिए yml हो सकता है और दूसरे में Ansible फ़ाइलें।
क्रिश्चियन मास्लेन

अगर मैं कर सकता था तो मैं इसे दो बार बढ़ाऊंगा। एक .html एक्सटेंशन के साथ मेरे नैनोक लेआउट और भाग के लिए वाक्यविन्यास को बनाए रखने की कोशिश कर रहा है, इसने इसे हल किया: "**/layouts/**/*.html": "erb"- ध्यान देने योग्य है कि VSCode "भाषा मोड" ड्रॉपडाउन ब्रैकेट में वाक्यविन्यास हाइलाइटर का वास्तविक नाम दिखाता है जैसेRuby ERB (erb)
डेव एवरिट


12

यह, उदाहरण के लिए, किसी अन्य LESS फ़ाइल की तरह ही समाप्त होने वाली .variablesऔर .overridesव्यवहार की जाने वाली फ़ाइलों को बनाएगा । कोड रंग भरने के संदर्भ में, (ऑटो) स्वरूपण के संदर्भ में। उपयोगकर्ता सेटिंग्स या प्रोजेक्ट सेटिंग्स में परिभाषित करें, जैसा आप चाहते हैं।

(सेमेटिक यूआई इन अजीब एक्सटेंशन का उपयोग करता है, यदि आप आश्चर्यचकित हैं)



8

Https://code.visualstudio.com/docs/customization/colorizer#_common-questions पर चरणों का पालन करने से मेरे लिए अच्छा काम किया:

किसी मौजूदा colorizer का विस्तार करने के लिए, आप .vscode / एक्सटेंशन के तहत एक नए फ़ोल्डर में एक साधारण पैकेज बना सकते हैं। एक्सटेंशन प्रदान करने के लिए इच्छित अनुकूलन निर्दिष्ट करते हुए एक्सटेंशनडिपेंडेंसी विशेषता प्रदान करते हैं। नीचे दिए गए उदाहरण में, एक एक्सटेंशन .mmd को मार्कडाउन colorizer में जोड़ा जाता है। ध्यान दें कि एक्सटेंशन न केवल निर्भरता नाम अनुकूलन से मेल खाना चाहिए, बल्कि भाषा आईडी भी आपके द्वारा विस्तारित किए जा रहे 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

मैंने बहुत ही समान समस्या को हल करने के लिए एक अलग दृष्टिकोण का पालन किया है, मेरे मामले में, मैंने एक नया विस्तार किया है जो ड्रुपल-विशिष्ट फ़ाइलों (जैसे .module और .inc) के लिए PHP सिंटैक्स हाइलाइटिंग समर्थन जोड़ता है: https: // github। com / mastazi / वी.एस.-कोड-Drupal

जैसा कि आप कोड में देख सकते हैं, मैंने मौजूदा PHP एक्सटेंशन को संशोधित करने के बजाय एक नया एक्सटेंशन बनाया है। जाहिर है मैं Drupal एक्सटेंशन में PHP एक्सटेंशन पर निर्भरता की घोषणा करता हूं।

इस तरह से करने का लाभ यह है कि अगर PHP एक्सटेंशन में कोई अपडेट होता है, तो Drupal के लिए मेरा कस्टम समर्थन अपडेट प्रक्रिया में खो नहीं जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.