Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° HTML ΠΈ CSS синтаксиса Π² Visual Studio

Π—Π°Π΄Π°Ρ‚ΡŒ вопрос

Вопрос Π·Π°Π΄Π°Π½

Π˜Π·ΠΌΠ΅Π½Ρ‘Π½ 4 мСсяца Π½Π°Π·Π°Π΄

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½ 3k Ρ€Π°Π·Π°

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ Ρ„Π°ΠΉΠ»Ρ‹ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (HTML, CSS), ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подсвСтку Ρ‚Π΅Π³ΠΎΠ², Π½ΠΎ Ρ‚ΡƒΡ‚ я вспоминаю Sublime Text 3 ΠΈΠ»ΠΈ Visual Studio Code ΠΎΡ‚ Microsoft, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… всС подсвСчиваСтся ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ HTML: URL, классы ΠΈ ID, Π° Π² CSS: Ρ†Π²Π΅Ρ‚Π°, URL, значСния свойств ΠΈ Ρ‚.Π΄. Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ подсвСтку синтаксиса этих Ρ„Π°ΠΉΠ»ΠΎΠ²?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ я имСю Π²Π²ΠΈΠ΄Ρƒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ HTML Ρ„Π°ΠΉΠ» Π² Visual Studio ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Sublime text 3

  • html
  • css
  • вёрстка
  • visual-studio

6

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π½Π° Visual Studio 2017
Π§Ρ‚ΠΎΠ± внСсти измСнСния Π² подсвСтку Visual Studio (Π΅Ρ‘ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ Π³Π°ΠΌΠΌΡƒ), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π²

Настройки (Options)-> ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (Environment) -> Π¨Ρ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ Ρ†Π²Π΅Ρ‚Π° (Fonts and Colors)  

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция Π΅ΡΡ‚ΡŒ Π½Π° MSDN

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ (извиняюсь Π·Π° ядСрныС Ρ†Π²Π΅Ρ‚Π°, просто для наглядности сдСлал):

1

You can install Sublime VSCode Theme Extend inside VisualStudioCode Application Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Sublime VSCode Theme Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Visual Studio Code.

1

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅

РСгистрация Ρ‡Π΅Ρ€Π΅Π· Google

РСгистрация Ρ‡Π΅Ρ€Π΅Π· Facebook

РСгистрация Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ‡Ρ‚Ρƒ

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· рСгистрации

ΠŸΠΎΡ‡Ρ‚Π°

НСобходима, Π½ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ показываСтся

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· рСгистрации

ΠŸΠΎΡ‡Ρ‚Π°

НСобходима, Π½ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ показываСтся

НаТимая Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Β», Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с нашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ соглашСниСм, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΎ ΠΊΡƒΠΊΠΈ

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ язык для подсвСтки синтаксиса Π² Visual Studio Code

Автор ΠšΠΈΡ€ΠΈΠ»Π» Π‘ΠΎΠΊΠΎΠ»ΠΎΠ² На Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ 7 ΠΌΠΈΠ½. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 442 ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ

25.04.2021

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°, этот вопрос касаСтся ΠΊΠΎΠ΄Π°, Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Visual Studio. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ΡΡŽΠ΄Π°: https://code.visualstudio.com/

I Ρƒ вас Π΅ΡΡ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» (.txt) с CSS, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ подсвСтку синтаксиса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ctrl + shift + p . Но Ρ‚Π°ΠΌ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ синтаксис, ΠΊΠ°ΠΊ Π² Sublime.

Π•ΡΡ‚ΡŒ Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ раскраску CSS ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ тСкстового Ρ„Π°ΠΉΠ»Π°?


Π’ Π’ самом ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, слСва ΠΎΡ‚ смайлика, Π±Ρ‹Π» Π·Π½Π°Ρ‡ΠΎΠΊ Β«ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст». Когда Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚Π΅ ΠΏΠΎ Π½Π΅ΠΌΡƒ, появляСтся мСню со всСми языками, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ язык.


НаТмитС Ctrl + K M , Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ (ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅) Π½ΡƒΠΆΠ½Ρ‹ΠΉ язык.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ· ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ” Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ языковой Ρ€Π΅ΠΆΠΈΠΌ Β», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ этот ΠΎΡ‚Π²Π΅Ρ‚

ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» 8 августа 2016 Π² 13:55

Matt

69k2222 Π·ΠΎΠ»ΠΎΡ‚Ρ‹Ρ… Π·Π½Π°ΠΊΠ°140140 сСрСбряных Π·Π½Π°ΠΊΠΎΠ²172172 Π±Ρ€ΠΎΠ½Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°ΠΊΠ°

ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» 13 ноября ’15 Π² 16:12

  • Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ панСль Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Ctrl + K, Ctrl + M вмСсто Ctrl + K, M, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΌΠΎΠ΅ΠΉ ошибкой.

    – ΠšΡ€ΠΈΡ, 13 ΠΌΠ°Ρ€Ρ‚Π° ’17 Π² 17:56

  • cmd + KM Π½Π° Mac. – Адам ΠŸΠ°Ρ€ΠΊΠΈΠ½, 16 ΠΎΠΊΡ‚. 2017 Π³., Π² 16:03

  • @gitsitgo, Π² Ρ‡Π΅ΠΌ смысл KM? – Pacerier 16 Ρ„Π΅Π²., 18:04

  • macOS: shift + cmd + P – gderaco, 12 июня ’18 Π² 15:53 ​​

  • Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΎ Π² Β«Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса» – Π‘Π°ΠΉΠΌΠΎΠ½ Π‘ΠΎΠΌΠ»Π°ΠΉ, 18 июля 2018, 9:04

| ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ 6 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²


НаТмитС Ctrl + K M , Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ (ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅) Π½ΡƒΠΆΠ½Ρ‹ΠΉ язык.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ· ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Β«Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ языка», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ :


Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ люди ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ подсвСтки синтаксиса, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π½Π΅ установлСн ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ синтаксиса. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ синтаксиса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ прСдустановлСнными (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Swift, C, JS, CSS), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Cmd + Shift + P β†’ Β«ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΒ» ΠΈ Π½Π°ΠΉΡ‚ΠΈ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, скаТСм Β«ScalaΒ».

НайдитС подходящий ΠŸΠ°ΠΊΠ΅Ρ‚ Syntax, установитС Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис для Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС

.scala .

НавСрх ΠΈΠ· этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ VS Code ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ всС *. e s ΠΊΠ°ΠΊ JavaScript, Π·Π°Ρ‚Π΅ΠΌ просто ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Β«ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки» ( Cmd + Shift + P β†’ Β«ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки») ΠΈ настройтС свои ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 "files.associations": {"* .es": "javascript"},  

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ этот ΠΎΡ‚Π²Π΅Ρ‚

ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» 22 мая ’17 Π² 11:37

  • Бпасибо – files.associations Π±Ρ‹Π»ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я искал – statler 9 сСнтября ’17 Π² 6:14

  • Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚ мСня cookie с Π»Π°ΠΊΠΎΠΌΡ‹ΠΌ кусочком ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ², спасибо! – user188757 01 Ρ„Π΅Π², Π² 21:11

Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |


Другая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ люди ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с трудностями ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с подсвСткой синтаксиса, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π½Π΅ установлСн ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ синтаксиса. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ синтаксиса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ прСдустановлСнными (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Swift, C, JS, CSS), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Cmd + Shift + P β†’ Β«ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΒ» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, скаТСм Β«ScalaΒ».

НайдитС подходящий ΠΏΠ°ΠΊΠ΅Ρ‚ Syntax, установитС Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис для Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС .scala .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ VS Code Π±Ρ‹Π» Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ всС *. es ΠΊΠ°ΠΊ JavaScript, Π·Π°Ρ‚Π΅ΠΌ просто ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Β«ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки» ( Cmd + Shift + P β†’ Β«ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки») ΠΈ настройтС свои ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 "files.associations": {"* .es": "javascript"},  

23

ΠΏΡƒΡ‚ΡŒ>

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса для настраиваСмого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°
  2. Установка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° синтаксиса
  3. ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса для настраиваСмого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°
  4. Установка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° синтаксиса

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса для настраиваСмого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°

Π›ΡŽΠ±ΠΎΠ΅ настраиваСмоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано со стандартным синтаксисом Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настройках ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ постоянная настройка. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык Π² ΠΏΠΎΠ»Π΅ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ языковой Ρ€Π΅ΠΆΠΈΠΌ (Π±Π΅Π· измСнСния настроСк

ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² )

Установка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° синтаксиса

Если Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ синтаксиса нСдоступСн ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Extension Marketplace ( Ctrl + Shift + X ) ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ языковой ΠΏΠ°ΠΊΠ΅Ρ‚.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ воспроизвСсти описанныС Π²Ρ‹ΡˆΠ΅ шаги для сопоставлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² с Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ синтаксиса.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ этот ΠΎΡ‚Π²Π΅Ρ‚

ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» 25 Π°ΠΏΡ€. ’19 Π² 13:21

Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |


ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса для настраиваСмого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°

Π›ΡŽΠ±ΠΎΠ΅ настраиваСмоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано со стандартной подсвСткой синтаксиса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ассоциация Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настройках ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ постоянная настройка. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык Π² ΠΏΠΎΠ»Π΅ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ языковой Ρ€Π΅ΠΆΠΈΠΌ (Π±Π΅Π· измСнСния настроСк ассоциации Ρ„Π°ΠΉΠ»ΠΎΠ² )

Установка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° синтаксиса

Если Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ синтаксиса нСдоступСн ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Extension Marketplace ( Ctrl + Shift + X ) ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ языковой ΠΏΠ°ΠΊΠ΅Ρ‚.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ воспроизвСсти описанныС Π²Ρ‹ΡˆΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² с Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ синтаксиса.


Π§Ρ‚ΠΎΠ±Ρ‹ навсСгда ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ синтаксис языка:
ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» settings.json

*) ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ всС тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ javascript

 "files.associations": {"* .txt": "javascript"}  

*) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС нСсохранСнныС Ρ„Π°ΠΉΠ»Ρ‹ (Π±Π΅Π· названия-1 ΠΈ Ρ‚. Π΄.) Π² javascript:

 "files.associations": {"untitled- *":  "javascript"}  

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ этот ΠΎΡ‚Π²Π΅Ρ‚

ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» 14 Π΄Π΅ΠΊ. ’19 Π² 11:37

Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |


Π§Ρ‚ΠΎΠ±Ρ‹ навсСгда ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ синтаксис языка:
ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» settings.json

*) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ javascript

 "files.associations": {"* .txt": "javascript"}  

*) ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ всС нСсохранСнныС Ρ„Π°ΠΉΠ»Ρ‹ (Π±Π΅Π· названия-1 ΠΈ Ρ‚. Π΄.) Π² javascript:

 "files.associations": {"untitled- *  ":" javascript "}  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Β«Π‘Π΅Π· названия» (Β« Untitled-1 Β», Β« Untitled-2 Β») Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ язык Π² настройки.

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Ρ‹Π»:

 "files.associations": {"untitled- *": "javascript"}  

Π­Ρ‚ΠΎ Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с VSCode 1.42 (Q1 2020) Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ этих бСзымянных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².
title Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° , рядом с ΠΎΠ±Ρ‰ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ описания.
Он большС Π½Π΅ запускаСтся с β€œ untitled- ”

Π‘ΠΌ. β€œΠ£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π±Π΅Π· названия”

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ язык для этих Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² β€œΠ‘Π΅Π· названия”:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия Π½Π΅ настроСн ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ языковой Ρ€Π΅ΠΆΠΈΠΌ.

VS Code ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ files.defaultLanguage для настройки языка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия.

Π’ этом выпускС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ {activeEditorLanguage} , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ динамичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ языковой Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° вмСсто фиксированного ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ тСкст Π² бСзымянный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, VS Code Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ языковой Ρ€Π΅ΠΆΠΈΠΌ бСзымянного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ссли тСкст Π±Ρ‹Π» скопирован ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VS Code:

И см. workbench.editor.untitled.labelFormat в VSCode 1.43.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ этот ΠΎΡ‚Π²Π΅Ρ‚

ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ 20 июня ’20 Π² 9:12

БообщСство ♦

111 сСрСбряных Π·Π½Π°Ρ‡ΠΊΠΎΠ²

ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» 29 января ’20 Π² 17:18

Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |


ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Β«Π‘Π΅Π· названия» (Β« Untitled-1 Β», Β« Untitled-2 β€œ), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ язык Π² настройках.

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Ρ‹Π»:

 "files.associations": {"untitled- *": "javascript"}  

Π­Ρ‚ΠΎ Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с VSCode 1.42 (Q1 2020) Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ этих бСзымянных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².
Π’Π΅ΠΏΠ΅Ρ€ΡŒ title Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° вмСстС с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒΡŽ описания.
Он большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с β€œ Π±Π΅Π· названия - β€œ

Π‘ΠΌ.Β« Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π±Π΅Π· названия Β»

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ связанного языка для этих Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π±Π΅Π· названия:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия Π½Π΅ настроСн ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ языковой Ρ€Π΅ΠΆΠΈΠΌ.

VS Code ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ files.defaultLanguage для настройки язык ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия.

Π’ этом выпускС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ {activeEditorLanguage} , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ динамичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ языковой Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° вмСсто фиксированный ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈ вставляСтС тСкст Π² бСзымянный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, VS Code Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски измСняСт языковой Ρ€Π΅ΠΆΠΈΠΌ бСзымянного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ссли тСкст Π±Ρ‹Π» скопирован ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VS Code:

И см. workbench.editor .untitled.labelFormat в VSCode 1.43

Руководство ΠΏΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡŽ синтаксиса | Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Visual Studio API

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса опрСдСляСт Ρ†Π²Π΅Ρ‚ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ исходного ΠΊΠΎΠ΄Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° Visual Studio. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ , Ссли ΠΈΠ»ΠΈ вмСсто Π² JavaScript, ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ строки, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

  • ВокСнизация: Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ тСкста Π½Π° список Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²
  • Theming: использованиС Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настроСк для сопоставлСния Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΈ стилями

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ, Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с инструмСнта инспСктора области дСйствия ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² исходном Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Ρ‚Π΅ΠΌΡ‹ ΠΎΠ½ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ сСмантичСский, Ρ‚Π°ΠΊ ΠΈ синтаксичСский Ρ‚ΠΎΠΊΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Dark+) Π² Ρ„Π°ΠΉΠ»Π΅ TypeScript.

ВокСнизация

ВокСнизация тСкста Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ тСкста Π½Π° сСгмСнты ΠΈ классификации ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСгмСнта ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ Ρ‚ΠΎΠΊΠ΅Π½Π°.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ VS Code основан Π½Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… TextMate. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой структурированный Π½Π°Π±ΠΎΡ€ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² plist (XML) ΠΈΠ»ΠΈ JSON. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ VS Code ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ добавлСния Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ .

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ TextMate Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ процСссС, Ρ‡Ρ‚ΠΎ ΠΈ срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для подсвСтки синтаксиса, Π° Ρ‚Π°ΠΊΠΆΠ΅ для классификации исходного ΠΊΠΎΠ΄Π° Π½Π° области ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², строк, рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Начиная с вСрсии 1.43, VS Code Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· поставщика сСмантичСских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ сСмантики ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ языковыми сСрвСрами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ исходный Ρ„Π°ΠΉΠ» ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ символы Π² контСкстС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НапримСр, постоянноС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ постоянной подсвСтки Π²ΠΎ всСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² мСстС Π΅Π΅ объявлСния.

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° Π½Π° основС сСмантичСских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² считаСтся Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ подсвСткС синтаксиса Π½Π° основС TextMate. БСмантичСская подсвСтка ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… подсвСтки синтаксиса. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ языковым сСрвСрам ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сСмантичСских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ послС нСбольшой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС TextMate. БСмантичСская ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ Π² руководствС Semantic Highlighting.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate

VS Code ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ синтаксиса. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° TextMate, ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ приняты ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ IDE ΠΈΠ·-Π·Π° большого количСства языковых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², созданных ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… сообщСством Open Source.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate основаны Π½Π° рСгулярных выраТСниях Oniguruma ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ plist ΠΈΠ»ΠΈ JSON. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate здСсь, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΈ области дСйствия TextMate

ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько символов, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ элСмСнта. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΊ + ΠΈ * , ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ myVar , ΠΈΠ»ΠΈ строки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ "моя строка" .

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ связан с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия, которая опрСдСляСт контСкст Ρ‚ΠΎΠΊΠ΅Π½Π°. ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия β€” это список ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ контСкст Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π°. НапримСр, опСрация + Π² JavaScript ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия 9.0005 ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ°.js .

Π’Π΅ΠΌΡ‹ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ области с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΈ стилями для обСспСчСния подсвСтки синтаксиса. TextMate прСдоставляСт список ΠΎΠ±Ρ‰ΠΈΡ… областСй, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ваша Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π°ΡΡŒ, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ области, Π° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ связан со списком Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… областСй. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инспСктор областСй для отобраТСния ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ областСй для + 9.ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 0006 Π² простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript. НаиболСС конкрСтная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° Π²Π²Π΅Ρ€Ρ…Ρƒ, Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ области пСрСчислСны Π½ΠΈΠΆΠ΅:

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ области Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π΅ΠΌ. Когда Ρ‚Π΅ΠΌΠ° Π½Π°Ρ†Π΅Π»Π΅Π½Π° Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, всС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ с этой Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠ΅Π½Ρ‹, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌΠ° Π½Π΅ прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ раскраску для ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… областСй.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

VS Code ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ json TextMate. Они вносятся Ρ‡Π΅Ρ€Π΅Π· Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΎΡ‡ΠΊΠΎΠ² Π²ΠΊΠ»Π°Π΄Π°.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ примСняСтся Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°, имя области Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня для Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²ΠΊΠ»Π°Π΄ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ для Π²Ρ‹ΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ языка abc :

 {
  "способствуСт": {
    "языки": [
      {
        "ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€": "Π°Π±Π²",
        "Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ": [".abc"]
      }
    ],
    "Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°": [
      {
        "язык": "abc",
        "scopeName": "source.abc",
        "path": "./syntaxes/abc.tmGrammar.json"
      }
    ]
  }
}
 

Π‘Π°ΠΌ Ρ„Π°ΠΉΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ состоит ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ€Π°Π·Π΄Π΅Π» шаблонов , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСрСчислСны элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ опрСдСляСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· элСмСнтов. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° элСмСнты ΠΈΠ· рСпозитория , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ { "include": "#id" } .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ abc Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρ‹ a , b ΠΈ c ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ скобки - ΠΊΠ°ΠΊ выраТСния.

 {
  "scopeName": "source.abc",
  "ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹": [{ "Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚": "#Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅" }],
  "Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅": {
    "Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅": {
      "patterns": [{ "include": "#letter" }, { "include": "#paren-expression" }]
    },
    "письмо": {
      "совпадСниС": "а|б|в",
      "имя": "ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.Π±ΡƒΠΊΠ²Π°"
    },
    "paren-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅": {
      "Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ": "\\(",
      "ΠΊΠΎΠ½Π΅Ρ†": "\\)",
      "Π½Π°Ρ‡Π°Π»ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Π°": {
        «0»: { «имя»: «punctuation.paren.open» }
      },
      "ΠΊΠΎΠ½Π΅Ρ† Π·Π°Ρ…Π²Π°Ρ‚Π°": {
        «0»: { «имя»: «punctuation.paren.close» }
      },
      "имя": "Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°",
      "ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹": [{ "Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚": "#Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅" }]
    }
  }
}
 

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ попытаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ выраТСния ΠΊΠΎ всСму тСксту Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Для простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ:

 a
(
    Π±
)
Икс
(
    (
        с
        xyz
    )
)
(
Π°
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ создаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ области (пСрСчислСны слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ области):

 ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово. letter, source.abc
( пунктуация.paren.open, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
    b ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.Π±ΡƒΠΊΠ²Π°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
) Π·Π½Π°ΠΊΠΈ прСпинания.paren.close, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
Ρ… источник.abc
( пунктуация.paren.open, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
    ( пунктуация.paren.open, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
        c ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.Π±ΡƒΠΊΠ²Π°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
        xyz Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
    ) пунктуация.paren.close, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
) Π·Π½Π°ΠΊΠΈ прСпинания.paren.close, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
( пунктуация.paren.open, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.Π±ΡƒΠΊΠ²Π°, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π³Ρ€ΡƒΠΏΠΏΠ°, источник.abc
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ соотвСтствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строка xyz , Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. ПослСдняя скобка Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ expression.group , Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ end Π½Π΅ соотвСтствуСт ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ end-of-document , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ end .

ВстроСнныС языки

Если ваша Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ встроСнныС языки Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ языкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠΈ стилСй CSS Π² HTML, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ embeddedLanguages ​​ Ρ‚ΠΎΡ‡ΠΊΠ° Π²ΠΊΠ»Π°Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ VS Code Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ встроСнный язык ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ языка. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сопоставлСниС скобок, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²ΠΎ встроСнном языкС.

Π’ΠΎΡ‡ΠΊΠ° Π²ΠΊΠ»Π°Π΄Π° embeddedLanguages ​​ сопоставляСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ встроСнного языка с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ языка Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π² области meta.embedded.block.javascript Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ содСрТимоС JavaScript:

 {
  "способствуСт": {
    "Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°": [
      {
        "path": "./syntaxes/abc.tmLanguage.json",
        "scopeName": "source.abc",
        "встроСнныС языки": {
          "meta.embedded.block.javascript": "javascript"
        }
      }
    ]
  }
}
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π°Π±ΠΎΡ€Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… meta. embedded.block.javascript , ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² стилС JavaScript // ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ JavaScript.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π™ΠΎΠΌΠ°Π½Π° VS Code для запуска ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Новый язык :

создайтС Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. Π’Π°ΠΆΠ½Ρ‹Π΅ вопросы для создания Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ:

  • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ вашСго языка.
  • НазваниС языка β€” Π£Π΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ вашСго языка.
  • ИмСна областСй β€” ΠšΠΎΡ€Π½Π΅Π²ΠΎΠ΅ имя области TextMate для вашСй Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ язык, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для этого языка. Если Π²Ρ‹ создаСтС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ языка, просто Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ вашСм Ρ†Π΅Π»Π΅Π²ΠΎΠΌ языкС ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²ΠΊΠ»Π°Π΄Π° языков Π² сгСнСрированном package. json .

ΠžΡ‚Π²Π΅Ρ‚ΠΈΠ² Π½Π° всС вопросы, Π™ΠΎΠΌΠ°Π½ создаст Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ со структурой:

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ добавляСтС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для языка, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ VS Code ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ добавлСния языков Π² сгСнСрированном package.json .

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate

yo code Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ TextMate Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ VS Code. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с запуска yo code ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Language extension . Когда вас спросят ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΊ .tmLanguage ΠΈΠ»ΠΈ .json Π€Π°ΠΉΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ TextMate:

ИспользованиС YAML для написания Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° становится Π±ΠΎΠ»Π΅Π΅ слоТной, Π΅Π΅ становится Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ json. Если Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ слоТныС рСгулярныС выраТСния ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ для объяснСния аспСктов Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования вмСсто этого yaml для опрСдСлСния вашСй Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Yaml ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ структуру, Ρ‡Ρ‚ΠΎ ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° основС json, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ синтаксис yaml, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ многострочныС строки ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

VS Code ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ json, поэтому Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° основС yaml Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² json. ΠŸΠ°ΠΊΠ΅Ρ‚ js-yaml ΠΈ инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ эту Π·Π°Π΄Π°Ρ‡Ρƒ.

 # УстановитС js-yaml ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² вашСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ
$ npm ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ js-yaml --save-dev
# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ yaml Π² json
$ npx синтаксисы js-yaml/abc.tmLanguage.yaml > синтаксисы/abc.tmLanguage.json
 

Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° внСдрСния β€” это обычная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° TextMate, которая внСдряСтся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ внСдрСния:

  • Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TODO Π² коммСнтариях.
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ области дСйствия ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ выдСлСния для Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Markdown.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ внСдрСния

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ внСдрСния Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· package.json Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Однако вмСсто указания языка Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° внСдрСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ injectTo , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ список областСй Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ языка для внСдрСния Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создадим ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ внСдрСния, которая выдСляСт TODO ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π² коммСнтариях JavaScript. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ внСдрСния Π² Ρ„Π°ΠΉΠ»Ρ‹ JavaScript, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ языка source.js Π² injectTo :

 {
  "способствуСт": {
    "Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°": [
      {
        "path": "./syntaxes/injection.json",
        "scopeName": "todo-comment.injection",
        "injectTo": ["source. js"]
      }
    ]
  }
}
 

Π‘Π°ΠΌΠ° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° являСтся стандартной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ TextMate, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ записи ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня . ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡSelector β€” это сСлСктор области, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΈΡ… областях слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ слово TODO Π²ΠΎ всСх коммСнтариях // . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инспСктор области дСйствия, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ Π² JavaScript ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия comment.line.double-slash , поэтому наш сСлСктор внСдрСния Ρ€Π°Π²Π΅Π½ 9.0005 L:comment.line.двойная косая Ρ‡Π΅Ρ€Ρ‚Π° :

 {
  "scopeName": "todo-comment.injection",
  "injectionSelector": "L:comment.line.двойная косая Ρ‡Π΅Ρ€Ρ‚Π°",
  "ΡƒΠ·ΠΎΡ€Ρ‹": [
    {
      "include": "#todo-ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово"
    }
  ],
  "Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅": {
    "ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово todo": {
      "совпадСниС": "TODO",
      "имя": "keyword.todo"
    }
  }
}
 

L: Π² сСлСкторС вставки ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вставка добавляСтся слСва ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π’ основном это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Π»ΡŽΠ±Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

ВстроСнныС языки

Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ встроСнныС языки ΠΊ ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Как ΠΈ Π² случаС с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° внСдрСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ embeddedLanguages ​​ для сопоставлСния областСй встроСнного языка с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ языка Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выдСляСт SQL-запросы Π² строках JavaScript, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ embeddedLanguages ​​, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ meta.embedded.inline.sql ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ SQL для основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сопоставлСниС скобок ΠΈ Π²Ρ‹Π±ΠΎΡ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

 {
  "способствуСт": {
    "Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°": [
      {
        "path": "./syntaxes/injection.json",
        "scopeName": "sql-string.injection",
        "injectTo": ["source.js"],
        "встроСнныС языки": {
          "meta. embedded.inline.sql": "sql"
        }
      }
    ]
  }
}
 
Π’ΠΈΠΏΡ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ встроСнныС языки

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для встроСнных языков языков внСдрСния: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ VS Code ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π² строкС ΠΊΠ°ΠΊ содСрТимоС строки, Π° всС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ β€” ΠΊΠ°ΠΊ содСрТимоС Ρ‚ΠΎΠΊΠ΅Π½Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ сопоставлСниС скобок ΠΈ автоматичСскоС Π·Π°ΠΊΡ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ строк ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ссли встроСнный язык появляСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΈΠ»ΠΈ коммСнтария, эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π²ΠΎ встроСнном языкС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ meta.embedded.* для сброса ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ VS Code Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΊΠ°ΠΊ строк ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². РСкомСндуСтся всСгда Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ встроСнный язык Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ meta.embedded.* , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ VS Code ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ встроСнный язык.

Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ meta.embedded.* ΠΊ своСй Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ tokenTypes Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²ΠΊΠ»Π°Π΄Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ области с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ содСрТимого. 9Π Π°Π·Π΄Π΅Π» 0005 tokenTypes Π½ΠΈΠΆΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π² области my.sql.template.string обрабатываСтся ΠΊΠ°ΠΊ исходный ΠΊΠΎΠ΄:

 {
  "способствуСт": {
    "Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°": [
      {
        "path": "./syntaxes/injection.json",
        "scopeName": "sql-string.injection",
        "injectTo": ["source.js"],
        "встроСнныС языки": {
          "my.sql.template.string": "sql"
        },
        "Ρ‚ΠΈΠΏΡ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²": {
          "my.sql.template.string": "Π΄Ρ€ΡƒΠ³ΠΎΠ΅"
        }
      }
    ]
  }
}
 

ВСматичСскоС ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅

ВСматичСскоС ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ β€” это Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ стилСй ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°ΠΌ. ΠŸΡ€Π°Π²ΠΈΠ»Π° оформлСния Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ…, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настройках.

ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ΠΌΡ‹ TextMate ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² tokenColors ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ TextMate. КаТдоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ опрСдСляСт сСлСктор области TextMate ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ.

ΠŸΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΈ стиля Ρ‚ΠΎΠΊΠ΅Π½Π° тСкущая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Ρ‚ΠΎΠΊΠ΅Π½Π° сопоставляСтся с сСлСктором ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ свойства стиля (ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½, ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚, курсив, ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅)

Руководство ΠΏΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅ описываСт, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ. ВСматичСскоС ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ сСмантичСских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² руководствС ΠΏΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡŽ сСмантики.

Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ области

ВстроСнный Π² VS Code инструмСнт инспСктора области ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ сСмантичСскиС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹. Он ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ области ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠΈ сСмантичСскиС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ этому ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρƒ.

ЗапуститС инспСктора ΠΏΡ€ΠΈΡ†Π΅Π»Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ: ΠΊΠΎΠΌΠ°Π½Π΄Π° Inspect Editor Tokens and Scopes ΠΈΠ»ΠΈ создайтС для Π½Π΅Π΅ привязку клавиш:

 {
  "клавиша": "cmd+alt+shift+i",
  "ΠΊΠΎΠΌΠ°Π½Π΄Π°": "editor.action.inspectTMScopes"
}
 

Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ области дСйствия ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

  1. Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½.
  2. ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π΅ ΠΈ информация ΠΎ Π΅Π³ΠΎ вычислСнном внСшнСм Π²ΠΈΠ΄Π΅. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со встроСнными языками, Π²Π°ΠΆΠ½Ρ‹Π΅ записи здСсь язык ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ Ρ‚ΠΈΠΏΠ° .
  3. Π Π°Π·Π΄Π΅Π» сСмантичСского ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° отобраТаСтся, Ссли поставщик сСмантичСского ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° доступСн для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ языка ΠΈ тСкущая Ρ‚Π΅ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСмантичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ сСмантичСского Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ вмСстС с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Ρ‚Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡƒ сСмантичСского Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ.
  4. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ TextMate ΠΏΠΎΠΊΠ°Π·Π°Π½ список областСй для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° TextMate, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ конкрСтная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ находится Π²Π²Π΅Ρ€Ρ…Ρƒ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ областям. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Π°, Π½ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ сСмантичСских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сСмантичСскому Ρ‚ΠΎΠΊΠ΅Π½Ρƒ.

01.03.2023

Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ β€” установка языка для подсвСтки синтаксиса Π² Visual Studio Code

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Β«Π‘Π΅Π· названия» (Β« Π‘Π΅Π· названия-1 Β», Β« Π‘Π΅Π· названия-2 Β») Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ язык Π² настройках.

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

 "files.associations": {
        "бСз названия-*": "javascript"
 }
 

Π­Ρ‚ΠΎ большС Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с VSCode 1. 42 (Q1 2020) измСнится Π½Π°Π·Π²Π°Π½ΠΈΠ΅ этих бСзымянных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° вмСстС с Ρ€ΠΎΠ΄ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ описания.
Он большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с » untitled- »

Π‘ΠΌ. «Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π±Π΅Π· названия»

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ связанного языка для этих «Π±Π΅Π·Ρ‹ΠΌΡΠ½Π½Ρ‹Ρ…» Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для бСзымянных Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ настроСн ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ языковой Ρ€Π΅ΠΆΠΈΠΌ.

VS Code ΠΈΠΌΠ΅Π΅Ρ‚ настройку, files.defaultLanguage , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ язык ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для бСзымянных Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ этом выпускС этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ {activeEditorLanguage} , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ динамичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ языковой Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° вмСсто фиксированного значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈ вставляСтС тСкст Π² бСзымянный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, VS Code Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски мСняСт языковой Ρ€Π΅ΠΆΠΈΠΌ бСзымянного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ссли тСкст Π±Ρ‹Π» скопирован ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VS Code:

И см. workbench.editor.untitled.labelFormat в VSCode 1.43.


Π’ ΠΌΠ°Ρ€Ρ‚Π΅ 2021 Π³. (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ для VSCode 1.55) выпуск 118455 «АвтоматичСская языковая классификация для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия» ΠΈ PR 119325 ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ своСго Ρ€ΠΎΠ΄Π° автоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· названия.


И Ссли Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ, с VSCode 1.56, Π°ΠΏΡ€Π΅Π»ΡŒ 2021 Π³.:

ΠœΡ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ язык Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ языка VS Code.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ подсказку для бСзымянных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ языковой Ρ€Π΅ΠΆΠΈΠΌ.
Подсказка Π±Π΅Π· названия ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСсполСзна для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, поэтому ΠΎΠ½Π° сразу исчСзаСт, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «НС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ большС Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ подсказку.


Π‘ VScode 1.60 (август 2021 Π³.):

Π’ послСднСм выпускС ΠΌΡ‹ прСдставили ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для бСзымянных Ρ„Π°ΠΉΠ»ΠΎΠ², которая автоматичСски устанавливала языковой Ρ€Π΅ΠΆΠΈΠΌ для Ρ„Π°ΠΉΠ»Π° Π½Π° основС содСрТимого.

Π­Ρ‚Π° функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для угадывания языка ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ выполняСтся Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Он основан Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ машинного обучСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Tensorflow.js , ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния ΠΎΡ‚ Guesslang ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ GitHub @yoeo.

Π’ этом выпускС ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ автоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка для Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ . Π’ Notebooks ΠΌΡ‹ прСдоставляСм простой способ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСдства Π²Ρ‹Π±ΠΎΡ€Π° языка. Π­Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π·Π°Π±Π°Π²Π½Ρ‹Ρ… сцСнариСв:

  • Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² бСзымянный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка бСзымянных Ρ„Π°ΠΉΠ»ΠΎΠ²

  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ языка «Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄» (дСмонстрация обнаруТСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ) ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ языка Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ

  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ автоматичСского опрСдСлСния Π² срСдствС Π²Ρ‹Π±ΠΎΡ€Π° языка Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ² ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ²


VSCode 1. 65 (Ρ„Π΅Π²Ρ€Π°Π»ΡŒ 2022 Π³.) поставляСтся с:

Когда Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ workbench.editor.historyBasedLanguageDetection Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, бСзымянныС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ автоматичСского опрСдСлСния языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ вашСго Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ содСрТимоС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ обнаруТСния с Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшим Π²Π²ΠΎΠ΄ΠΎΠΌ тСкста, Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅. .

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования этого Π² JavaScript, TypeScript, Markdown, PHP ΠΈ C++ (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки):

Π’Π΅ΠΌΠ°: GitHub Light + настройки HC


VSCode 1.70 (июль 2022 Π³.) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ (выпуск 152920, PR 153872)

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· названия с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ языков

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· названия

registerCommandAndKeybindingRule позволяСт «АргумСнтам Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· названия» Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка, Ссли ΠΎΠ½ извСстСн.