Когда Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ автоматичСски выравниваСтся ΠΏΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ отступам β€” это ΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° табуляции. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ΄Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ отступы Π² 2 символа, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°ΡΡ‚Π°ΠΈΠ²Π°ΡŽΡ‚ Π½Π° 4? И ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ становится ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ ΠΆΠ°Ρ€ΠΊΠΈΡ… споров?

На самом Π΄Π΅Π»Π΅, ΡˆΠΈΡ€ΠΈΠ½Π° табуляции Π² 1Π‘ β€” это Π½Π΅ просто эстСтичСский вопрос. Она Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ модулям ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ:

  • πŸ”Ή Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ табуляция ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½Π° отличаСтся ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² 1Π‘
  • πŸ”Ή Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ отступа Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹
  • πŸ”Ή ΠŸΠΎΡ‡Π΅ΠΌΡƒ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° vs 2 ΠΏΡ€ΠΎΠ±Π΅Π»Π° β€” Π²Π΅Ρ‡Π½Ρ‹ΠΉ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ срСди 1Π‘-Π½ΠΈΠΊΠΎΠ²
  • πŸ”Ή Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π»ΠΎΠ²ΠΈΠ»ΠΈ сСбя Π½Π° мысли, Ρ‡Ρ‚ΠΎ Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄ Π² 1Π‘ выглядит "ΠΊΡ€ΠΈΠ²ΠΎ", Π° ваш β€” идСально, скорСС всСго, Π΄Π΅Π»ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² настройках табуляции. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Π΅Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡˆΠΈΡ€ΠΈΠ½Π° табуляции ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π° Π² 1Π‘

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ табуляция β€” это символ (ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выравнивания строк ΠΊΠΎΠ΄Π°. Когда Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Tab Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ вставляСт отступ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ опрСдСляСтся настройкой ΡˆΠΈΡ€ΠΈΠ½Ρ‹ табуляции.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ табуляции:

  • πŸ“Œ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°: ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Если...Π’ΠΎΠ³Π΄Π°, Ρ†ΠΈΠΊΠ»Ρ‹ Для...По ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.
  • πŸ“Œ Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ отступы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстрСС Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† логичСских Π±Π»ΠΎΠΊΠΎΠ².
  • πŸ“Œ Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ отступов ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСсколько программистов.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков Π²Ρ€ΠΎΠ΄Π΅ Python, Π³Π΄Π΅ отступы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ синтаксиса, Π² 1Π‘ табуляция β€” это ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ инструмСнт для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ символов табуляции ΠΏΡ€ΠΈ компиляции. Однако это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ настройка Π½Π΅ Π²Π°ΠΆΠ½Π°!

πŸ“Š Какой ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² 1Π‘?
2 ΠΏΡ€ΠΎΠ±Π΅Π»Π°
4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°
Π‘ΠΈΠΌΠ²ΠΎΠ» табуляции (Tab)
Зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
НС знаю, Ρ‡Ρ‚ΠΎ это

Вабуляция vs ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹: Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ для 1Π‘

Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² 1Π‘ Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ мнСния, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅: символ табуляции (Tab) ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы:

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π‘ΠΈΠΌΠ²ΠΎΠ» табуляции (Tab) ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹
Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ настройки МоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π±Π΅Π· ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° Ѐиксированная ΡˆΠΈΡ€ΠΈΠ½Π°, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ стандарта
Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠœΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… Выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²Π΅Π·Π΄Π΅
ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий ИзмСнСниС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π² настройках Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ "ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ" diff Π² Git Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅ для систСм контроля вСрсий
Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ 1Π‘ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ РСкомСндуСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСтодичСских ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ…

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… 1Π‘-Π½ΠΈΠΊΠΎΠ² ΡΠΊΠ»ΠΎΠ½ΡΡŽΡ‚ΡΡ ΠΊ использованию 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² вмСсто символа табуляции. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ:

  1. ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρƒ всСх Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  2. Π‘ΠΈΠΌΠ²ΠΎΠ» Tab ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Notepad++ ΠΈ VS Code).
  3. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмами контроля вСрсий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Git) ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ риск ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½Ρ‹Ρ… настроСк отступов.
πŸ’‘

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, зафиксируйтС стандарт ΡˆΠΈΡ€ΠΈΠ½Ρ‹ табуляции Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ сэкономит часы Π½Π° ΠΏΡ€Π°Π²ΠΊΡƒ "ΠΊΡ€ΠΈΠ²ΠΎΠ³ΠΎ" ΠΊΠΎΠ΄Π° ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ табуляции Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ 1Π‘

Настройка ΡˆΠΈΡ€ΠΈΠ½Ρ‹ отступов Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ зависит ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°. Рассмотрим основныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Бпособ 1: Настройка Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ (8.3 ΠΈ Π½ΠΎΠ²Π΅Π΅)

Π’ соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (начиная с 8.3.6) ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ табуляции Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· мСню:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² БСрвис β†’ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ВСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.
  3. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ установитС:
    • πŸ“ Π Π°Π·ΠΌΠ΅Ρ€ табуляции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 4)
    • βœ… Π€Π»Π°ΠΆΠΎΠΊ Π—Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ (рСкомСндуСтся)
  • НаТмитС ОК ΠΈ пСрСзапуститС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.
  • Бпособ 2: Π ΡƒΡ‡Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°

    Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ привСсти ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ стандарту ΡƒΠΆΠ΅ написанный ΠΊΠΎΠ΄:

    1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.
    2. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ вСсь тСкст (Ctrl+A).
    3. НаТмитС Shift+Tab нСсколько Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС отступы.
    4. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ автоматичСскоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ВСкст β†’ Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст) ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ отступы клавишСй Tab.
    5. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°|Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ табуляции (рСкомСндуСтся 4)|Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ Tab Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹|ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ (Shift+Tab β†’ Tab)|Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ настройки-->

      Бпособ 3: ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²

      Если Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ 1Π‘ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… инструмСнтах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Visual Studio Code с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ 1C Syntax), настройка выполняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°:

      "editor.tabSize": 4,
      

      "editor.insertSpaces": true,

      "[1c]": {

      "editor.defaultFormatter": "1c-syntax.utils"

      }

      Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ табуляции Π² Ρ„Π°ΠΉΠ»Π΅?

      ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² любом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ с подсвСткой ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Notepad++ с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ "Show Symbol"). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ табуляции Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ β†’, Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” ΠΊΠ°ΠΊ Β·. Π’Π°ΠΊ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ отступов, Π΄Π°ΠΆΠ΅ Ссли Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ настроСно ΠΈΠ½ΠΎΠ΅.

      Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ оформлСния ΠΊΠΎΠ΄Π° 1Π‘: Ρ‡Ρ‚ΠΎ говорят ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡ΠΊΠΈ

      Π€ΠΈΡ€ΠΌΠ° 1Π‘ Π½Π΅ Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ Тёстких Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡˆΠΈΡ€ΠΈΠ½Π΅ табуляции, Π½ΠΎ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… мСтодичСских ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ:

      • πŸ“– Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π‘ΠŸ, Π£Π’, Π—Π£ΠŸ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ отступы Π² 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Если...Π’ΠΎΠ³Π΄Π°.
      • πŸ“– Π’ "1Π‘:Π‘Ρ‚ΠΈΠ»ΡŒ программирования" (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΡ‹ 1Π‘) рСкомСндуСтся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Сдинообразия отступов Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ уточняСтся.
      • πŸ“– Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π° ΠΈΠ· ИВБ ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Ρ‡Π°Ρ‰Π΅ встрСчаСтся ΡˆΠΈΡ€ΠΈΠ½Π° Π² 4 символа.

    Однако Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ собствСнныС стандарты. НапримСр:

    • 🏒 ΠšΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠšΠΎΡ€ΡƒΡ ΠšΠΎΠ½ΡΠ°Π»Ρ‚ΠΈΠ½Π³ ΠΈΠ»ΠΈ АйВи) ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
    • 🏒 Π’ стартапах ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 2 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для компактности ΠΊΠΎΠ΄Π°.
    • 🏒 ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½Ρ‹ΠΌΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ стандарт PSR-12 (4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°), Π΄Π°ΠΆΠ΅ для 1Π‘.
    • πŸ’‘

      Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²ΡƒΡŽ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΡƒ для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Π˜Π½Ρ„ΠΎΡΡ‚Π°Ρ€Ρ‚Π΅, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ табуляции Π² 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° β€” это повысит ΡˆΠ°Π½ΡΡ‹ Π½Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

      ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с табуляциСй: Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

      НСкоррСктная настройка отступов ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ряду ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, особСнно Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС ошибки:

      ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π² вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ настройки табуляции, систСмы контроля вСрсий (Git, SVN) Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ измСнСния Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π΄Π°ΠΆΠ΅ Ссли Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ помСнялся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отступ. Π­Ρ‚ΠΎ услоТняСт Π°Π½Π°Π»ΠΈΠ· истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

      Ошибка 1: Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ отступы (ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ + Tab)

      Когда Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ символы табуляции, ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΊΠΎΠ΄ становится Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. НапримСр:

      ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΈΠΌΠ΅Ρ€()
      

      // ΠžΡ‚ΡΡ‚ΡƒΠΏ ΠΈΠ· Tab

      // ΠžΡ‚ΡΡ‚ΡƒΠΏ ΠΈΠ· 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

      // ΠžΡ‚ΡΡ‚ΡƒΠΏ ΠΈΠ· Tab + 2 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

      ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

      Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

      1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.
      2. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… символов (ВСкст β†’ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ слуТСбныС символы).
      3. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ всС Tab Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ (Ctrl+H).

    Ошибка 2: НСсоотвСтствиС стандарту ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

    Если Π²Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π³Π΄Π΅ ΡƒΠΆΠ΅ установлСны ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния, Π½ΠΎ ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ настроСн ΠΈΠ½Π°Ρ‡Π΅, ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ "Π²Ρ‹ΠΏΠ°Π΄Π°Ρ‚ΡŒ" ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ стиля. НапримСр:

    // Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°)
    

    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π‘Ρ‚Π°Ρ€Π°ΡΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°()

    // ...

    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

    // Π’Π°Ρˆ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ (2 ΠΏΡ€ΠΎΠ±Π΅Π»Π°)

    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΠΎΠ²Π°ΡΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°()

    // ...

    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

    РСшСниС:

    • πŸ”§ Π£Ρ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ стандарт Ρƒ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° ΠΈΠ»ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
    • πŸ”§ НастройтС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° (см. Ρ€Π°Π·Π΄Π΅Π» Π²Ρ‹ΡˆΠ΅).
    • πŸ”§ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты автоматичСского форматирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, OneScriptFormatter).

    Ошибка 3: Вабуляция "Π»ΠΎΠΌΠ°Π΅Ρ‚" Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строках

    ΠŸΡ€ΠΈ использовании символа Tab Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ объявлСний ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡŠΠ΅Π·ΠΆΠ°Ρ‚ΡŒ. НапримСр:

    ΠŸΠ΅Ρ€Π΅ΠΌ Π³Π»ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ1,
    

    Π³Π»ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ2,

    Π³Π»ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ3;

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого:

    • πŸ“ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ вмСсто Tab для выравнивания.
    • πŸ“ Или настройтС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ Tab Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

    Автоматизация форматирования ΠΊΠΎΠ΄Π° Π² 1Π‘

    Ручная ΠΏΡ€Π°Π²ΠΊΠ° отступов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ β€” ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ занятиС. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ инструмСнты для автоматичСского привСдСния ΠΊΠΎΠ΄Π° ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ стандарту.

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ 1: OneScriptFormatter

    OneScriptFormatter β€” это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая позволяСт:

    • πŸ”„ ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ отступы ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°).
    • πŸ”„ Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Если, Для, ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ.
    • πŸ”„ Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Git для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для форматирования:

    opm tool format -r "C:\Projects\MyConfig" --tab-size 4 --use-spaces

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ 2: ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ для VS Code

    Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Visual Studio Code для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с 1Π‘, установитС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

    • πŸ› οΈ 1C Syntax β€” подсвСтка синтаксиса ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
    • πŸ› οΈ 1C Formatter β€” автоматичСская ΠΏΡ€Π°Π²ΠΊΠ° отступов ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ.

    Настройка Π² settings.json:

    "1c-formatter.tabSize": 4,
    

    "1c-formatter.insertSpaces": true,

    "editor.formatOnSave": true

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ 3: Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°

    Для автоматичСского форматирования прямо Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты Π½Π° OneScript. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скрипта для Π·Π°ΠΌΠ΅Π½Ρ‹ Tab Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹:

    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ’Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽΠΠ°ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹(ВСкст, Π Π°Π·ΠΌΠ΅Ρ€ΠžΡ‚ΡΡ‚ΡƒΠΏΠ° = 4)
    

    БимволВабуляции = Π‘ΠΈΠΌΠ²ΠΎΠ»(9);

    ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ = Π‘Ρ‚Ρ€Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(ΠŸΠΎΠ²Ρ‚ΠΎΡ€(Π‘ΠΈΠΌΠ²ΠΎΠ»(32), Π Π°Π·ΠΌΠ΅Ρ€ΠžΡ‚ΡΡ‚ΡƒΠΏΠ°));

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, БимволВабуляции, ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹);

    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

    πŸ’‘

    Автоматизация форматирования экономит Π΄ΠΎ 30% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅Π²ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΈ сниТаСт количСство ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² систСмах контроля вСрсий.

    Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с табуляциСй Π² 1Π‘

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с отступами, слСдуйтС этим рСкомСндациям:

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с унаслСдованным ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² старых конфигурациях Π½Π° 1Π‘ 7.7), ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ табуляции ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ сломаСт Π»ΠΎΠ³ΠΈΠΊΡƒ. Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях отступы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для "ΠΎΠ±ΠΌΠ°Π½Π°" парсСра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² слоТных макросах).
    • πŸ”Ή БогласуйтС стандарт с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½Π° этапС старта ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 10 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° обсуТдСниС, Ρ‡Π΅ΠΌ часы Π½Π° ΠΏΡ€Π°Π²ΠΊΡƒ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·ΠΆΠ΅.
    • πŸ”Ή Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ .editorconfig β€” Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски примСняСт настройки табуляции для всСх участников ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
    • πŸ”Ή ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π’ Git ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ…ΡƒΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ отступами.
    • πŸ”Ή Для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° β€” это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ инструмСнтов.
    • Если Π²Ρ‹ Π²Π΅Π΄Ρ‘Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ, ΡˆΠΈΡ€ΠΈΠ½Π° табуляции β€” вопрос Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. Но ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ появляСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, стандартизация становится ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ.

      FAQ: ЧастыС вопросы ΠΎ табуляции Π² 1Π‘

      МоТно Π»ΠΈ Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ табуляции (Tab) вмСсто ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²?

      Π”Π°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Однако символ Tab ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Notepad++ ΠΈ VS Code ΡˆΠΈΡ€ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ). ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρƒ всСх Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

      Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ настройки табуляции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‡ΡƒΠΆΠΎΠΌ ΠΊΠΎΠ΄Π΅?

      ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ с подсвСткой Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VS Code с Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ "editor.renderWhitespace": "all"). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Tab Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ β†’, Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” ΠΊΠ°ΠΊ Β·. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΠ΄ строка.Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚Π‘ΠΈΠΌΠ²ΠΎΠ»(Π‘ΠΈΠΌΠ²ΠΎΠ»(9)) Π² 1Π‘ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия табуляции.

      ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС измСнСния ΡˆΠΈΡ€ΠΈΠ½Ρ‹ табуляции Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ старый ΠΊΠΎΠ΄ Π½Π΅ измСнился?

      Настройка Π² БСрвис β†’ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ отступам. Π§Ρ‚ΠΎΠ±Ρ‹ привСсти ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ стандарту, Π½ΡƒΠΆΠ½ΠΎ:

      1. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ тСкст (Ctrl+A).
      2. Π£Π±Ρ€Π°Ρ‚ΡŒ всС отступы (Shift+Tab).
      3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ отступы Π·Π°Π½ΠΎΠ²ΠΎ (Tab).
      4. Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСскоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ВСкст β†’ Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст).
      Какая ΡˆΠΈΡ€ΠΈΠ½Π° табуляции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях 1Π‘?

      Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (Π‘ΠŸ 3.0, Π£Π’ 11, Π—Π£ΠŸ 3.1) ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ отступы Π² 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… старых конфигурациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘:Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ΠΈ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΎΠΌ 2.5) ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ символы табуляции (Tab). Для точности ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

      Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 7.7?

      Π’ 1Π‘ 7.7 настройки табуляции Тёстко Π·Π°ΡˆΠΈΡ‚Ρ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ измСнСнию Ρ‡Π΅Ρ€Π΅Π· интСрфСйс. Π¨ΠΈΡ€ΠΈΠ½Π° отступа фиксирована ΠΈ Ρ€Π°Π²Π½Π° 8 символам (символ табуляции). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ:

      • Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²ΠΎ внСшнСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
      • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ 7.7 Code Formatter (доступны Π½Π° Π˜Π½Ρ„ΠΎΡΡ‚Π°Ρ€Ρ‚Π΅).