Language-tools: АвтоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ нСсовмСстим Π² VSCode

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 9 июл. 2020  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: sveltejs/language-tools

ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ
Π­Ρ‚ΠΎ чисто эстСтично. ΠŸΡ€ΠΈ автоматичСском ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² VScode Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ добавляСтся ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

  • Они Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ _Π²Ρ‹ΡˆΠ΅_ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.
  • Они Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ для Ρ„Π°ΠΉΠ»ΠΎΠ² .ts ΠΈ .svelte .
  • Они ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ прСдпочтСния Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° quoteStyle.

    • НапримСр, с typescript.preferences.quoteStyle: single Π² VSCode ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

  • Π’ Π½ΠΈΡ… отсутствуСт отступ.

Π’ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ
Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· sveltejs/template , создайтС пустой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Test.svelte ΠΈ автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² App.svelte . Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… TypeScript Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² .ts вставляСтся сразу послС Ρ‚Π΅Π³Π° скрипта Π±Π΅Π· Π½ΠΎΠ²ΠΎΠΉ строки.

Example

ОТидаСмоС повСдСниС
Π― оТидаю, Ρ‡Ρ‚ΠΎ автоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ .ts , Π½ΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ отступом ΠΈΠ·-Π·Π° Ρ‚Π΅Π³Π° скрипта.

  • Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ отступом, особСнно Π² соотвСтствии с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ.
  • Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ.
  • ВставляйтС Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ для всСх Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ².
  • Если Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΡ‚ΠΈΠ»ΡŒ Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

Π‘Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

<script lang="ts">
    import Test from './Test.svelte';
    import { testStore } from './test';

    export let name;
</script>

БистСма (поТалуйста, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ):

  • ОБ: Windows 10
  • IDE: VSCode, 1.46.1
  • Плагин / ΠŸΠ°ΠΊΠ΅Ρ‚: Svelte для VSCode, 101.1.1

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ шаблона ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄ нСдСйствитСлСн. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, svelte2tsx Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» tsx , поэтому ΠΌΡ‹ возвращаСмся ΠΊ использованию Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТимого Ρ‚Π΅Π³Π° сцСнария. Если синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, svelte2tsx создаст ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» tsx . Π­Ρ‚ΠΎ заставляСт TypeScript Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΈ нашС сопоставлСниС ΠΎΡ‚ сгСнСрированного tsx Π΄ΠΎ исходного svelte ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π²Π²Π΅Ρ€Ρ…Ρƒ. Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Однако соблюдСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ (стиля Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎ. Π’ качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Β», ΠΈ Π±ΠΎΠ»Π΅Π΅ красивоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ позаботится ΠΎ стилях отступов ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ.

Бпасибо @dummdidumm Π·Π° Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ! πŸ˜„

Если Π΅ΡΡ‚ΡŒ способ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, это Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прямо сСйчас. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ (ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠ°Ρ…), ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ согласованным (Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ новСйший ΠΈΠΌΠΏΠΎΡ€Ρ‚ свСрху).

Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ протСстировал Ρ‚Ρ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ( test , test2 , test3 Π² этом порядкС) с Vetur, ΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ вставлСны Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для сравнСния:

Π’Π΅Ρ‚ΡƒΡ€:

<script lang="ts">
  import Vue from 'vue';
import { testStore1 } from './test';
import { testStore2 } from './test2';
import { testStore3 } from './test3';

  export default Vue.extend({ /*...*/ });
</script>

Svelte для VSCode:

<script lang="ts">import { testStore3 } from "./test3";
import { testStore2 } from "./test2";

import { testStore } from "./test";


    export let name: string;

</script>

Π£ js / ts Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΊΠ°Ρ€Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку послСднСго ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с Π΅Π΅ исходной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ