Делаем код "лесенкой" (Notepad ++)

Основы скриптинга

Moderator: SJplayer

Avatar
Topic author
Дим M
Администратор
Администратор
Posts: 1319
With us: 7 years 5 months

Делаем код "лесенкой" (Notepad ++)

Post #1by Дим » 11 Apr 2013, 9:39

#pragma tabsize или warning 217
Автор: Saimon_Jones

Начнем с того , для чего нужна #pragma tabsize и что такое warning 217


Прежде всего если вы скачали или написали сами мод/скрипт не применяйте #pragma tabsize 0, либо удалите. Почему ? - спросите вы. #pragma tabsize 0 Скрывает ( именно скрывает , а не удаляет ) ошибки табуляции . Если удалить #pragma tabsize появляется warning 217. Ошибки табуляции , даже при скрытом режиме , нагружают мод/скрипт и сам сервер.

Чтобы у нас не появилось warning 217, в своём моде, нужно выравнивать код лесенкой.

Как писать код лесенкой?
Код, вырезанный из другого скрипта/мода или же написан своими руками, может выглядеть криво к примеру как тот , что ниже.

Обычный код, при компиляции которого появляется warning 217:

Code: Select all

if(strcmp(cmd, "/reg", true) == 0) 
 
{ 
if(IsPlayerConnected(playerid)) 
           
{ 
ShowPlayerDialog
(playerid,1,DIALOG_STYLE_INPUT,"Регистрация","Введите текст","Ок","Отмена"); 
    
} 
              return 1
; 
       


Табулирует ваш скрипт кнопка TAB . Она делает отступ в 3-4 символа ( пробела ) . После каждой открытой скобки, в следующей строке должна быть табуляция (т.е. TAB) .Как только функция (тело) завершена, закрывающуюся скобку ставим под той скобкой, которая открывала это тело, далее пишем код сразу под закрытой скобкой, примерно так:

Так выглядит табулированный код:

Code: Select all

  if(strcmp(cmd, "/reg", true) == 0) 
      
{ 
          if
(IsPlayerConnected(playerid)) 
          
{ 
              ShowPlayerDialog
(playerid,1,DIALOG_STYLE_INPUT,"Регистрация","Введите текст","Ок","Отмена"); 
          
} 
          return 1
; 
      
}


Но возникает вопрос на подобие этого :
"У меня 100500 warning 217 после удаления #pragma tabsize 0 ? что мне делать ? выравнивать их самому ?"

Конечно нет. Для решения этой проблемы существует программа Notepad++ , через которую можно открыть наш pwn скрипт и отредактировать его.

Этот способ (ниже) НЕ выравнивает код лесенкой.


Как это сделать ?

1. Скачиваем notepad++ по ссылке
2. Запускаем Notepad ++ и открываем наш скрипт
3. Выбираем Плагины > Plugin Manager > Show Plugin Manager

Делаем код лесенкой (Notepad ++) 1.jpg
Делаем код лесенкой (Notepad ++) 1.jpg (26.15 KiB) Viewed 24575 times


4. Ищем в списке плагин Ident By Fold

Делаем код лесенкой (Notepad ++) 2.jpg
Делаем код лесенкой (Notepad ++) 2.jpg (85.5 KiB) Viewed 24575 times


5. Отмечаем его галочкой и жмем Install (произойдет скачивание и автоматический перезапуск)

Если у вас по каким-то причинам не установился плагин "Ident By Fold"


Делаем код лесенкой (Notepad ++) 3.jpg
Делаем код лесенкой (Notepad ++) 3.jpg (75.8 KiB) Viewed 24575 times


скачиваем его с оф.сайта
разработчика и устанавливаем вручную
Далее разархивируем скачанный архив в папку с установленным Notepad++ >> в директорию plugins
Теперь перезагружаем программу Notepad++ и видим что наш плагин виден в списке установленных.

Делаем код лесенкой (Notepad ++) 4.jpg
Делаем код лесенкой (Notepad ++) 4.jpg (70.68 KiB) Viewed 24575 times


6. Открываем снова наш скрипт и выделяем его полностью сочетание ctrl + A.

7. Открываем "Плагины" и выбираем "Ident By Fold", нажимаем "Reindent File"

Делаем код лесенкой (Notepad ++) 5.jpg
Делаем код лесенкой (Notepad ++) 5.jpg (20.83 KiB) Viewed 24575 times


Теперь наш код автоматически выстраивается "лесенкой".

Этот способ выравнивает код лесенкой.


2 способ , выравнивающий код лесенкой , с помощью того же Notepad++ :

1. Снова открываем список Plugin Manager
2. Находим в списке TextFX (возможно будет TextFX Characters)
3. Устанавливаем ( Notepad перезагрузится )
4. В меню находим: TextFX -> TextFX Edit -> Reindent C++ Code

Делаем код лесенкой (Notepad ++) 6.jpg
Делаем код лесенкой (Notepad ++) 6.jpg (70.01 KiB) Viewed 24575 times


Только теперь наш код выровнен "лесенкой"


Вот и все. Есть недостаток замеченный мной. Скрипты в одну строку он не редактирует. Скорее всего в новых версиях плагина это будет исправлено
Attachments
TextFX.png
TextFX.png (1.71 KiB) Viewed 30582 times
TextFX2.png
TextFX2.png (12.13 KiB) Viewed 30582 times
i love you mxIni Mysql

! ! !


Avatar
Aleksandr M
Модератор
Модератор
Posts: 55
With us: 7 years 3 months

Post #2by Aleksandr » 8 Jul 2013, 19:16

Попробовал и вправду работает, и мод легче стал

Avatar
SLesaruga
Posts: 2
With us: 5 years 10 months

Post #3by SLesaruga » 9 Nov 2014, 0:57

последние две картинки не отображаются

Avatar
Topic author
Дим M
Администратор
Администратор
Posts: 1319
With us: 7 years 5 months

Post #4by Дим » 9 Nov 2014, 1:15

SLesaruga wrote:последние две картинки не отображаются
Сделаны новые скриншоты и пояснение
i love you mxIni Mysql

Avatar
Miranda F
Старшина
Старшина
Posts: 143
With us: 7 years 2 months

Post #5by Miranda » 15 Jan 2015, 16:55

Хороший способ, и вес pwn сразу поубавился
Image


Return to “Основы”

Who is online

Users browsing this forum: 1 guest