Автор статьи: Вы должны зарегистрироваться, чтобы видеть ссылки.
Источник:Вы должны зарегистрироваться, чтобы видеть ссылки.
Предисловие:
В этой статье мы рассмотрим настройку Notepad++ под скрипты Pawn (AMXX).
Установка:
Если у вас нету Notepad++, вы можете скачать его с официального сайта Вы должны зарегистрироваться, чтобы видеть ссылки. .
Настройка:
Для начала настроим подсветку кода.
Заходим "Опции" -> "Определение стилей...".
В левом столбике выбираем "C++", в "Польз. расширение" добавляем "sma inc inl".
В inc файлах будет использоваться подсветка Pascal, как её поменять на C++?
Заходим C:\Program Files\Notepad++.
Там будет файл langs.xml ( langs.model.xml ) открываем его, находим такую строчку
- Код: Выделить всё
<Language name="pascal" ext="pas inc" commentStart="{" commentEnd="}">
Меняем её на
- Код: Выделить всё
<Language name="pascal" ext="pas" commentStart="{" commentEnd="}">
Подсветка кода готова.
Компилятор:
В связи с удалением Plugin Manager'a(из-за рекламы в нём, мда) в версиях 7.4.2 и выше, делаем следующее:
1 способ(только для х86)
Нам понадобятся: х86 версии Вы должны зарегистрироваться, чтобы видеть ссылки., Вы должны зарегистрироваться, чтобы видеть ссылки.
Устанавливаем 7.3.3, поверх ставим 7.5.6.
Далее заходим в Плагины - Plugin Manager - Show Plugin Manager - Updates
Ставим галочку на Plugin Manager и жмем Update, попутно соглашаемся со всеми запросами(если менеджер так и продолжит находится во вкладке Updates(а не Instlled!) повторить операцию повторно).
Далее следуем по гайду
2 способ(любая архитектура)
Качаем последний Вы должны зарегистрироваться, чтобы видеть ссылки.
скачиваем Вы должны зарегистрироваться, чтобы видеть ссылки. на текущий момент PluginManager_v1.4.11_UNI или PluginManager_v1.4.11_x64(х86 и х64 соответственно, для вашего notapad++)
Рассмотрим на примере PluginManager_v1.*.*_UNI:
открываем архив, видим две папки plugins и updater. Переходим в директорию(по умолчанию) C:\Program Files (x86)\Notepad++ так же там есть plugins и updater. Копируем файлы из архива на компьютер.
Теперь сделаем компиляцию кода на кнопку F6.
Открываем "Плагины" -> "Plugin Manager" -> "Show Plugin Manager"
Выбираем "NppExec" ставим рядом с ним галочку и жмём кнопку "Install".
При появлении соглашаемся
Когда NppExec установится появится сообщение с просьбой перезапустить Notepad++, жмём "Да"
Как Notepad++ перезапустится, жмём "Плагины" -> "NppExec" -> "Execute..." или F6
В окно "Command(s):" вставляем такой скрипт
- Код: Выделить всё
cd $(CURRENT_DIRECTORY)
"Ваш путь до папки scripting\amxxpc.exe" "$(FILE_NAME)" "-oПуть до папки в которую будут попадать скомпилированные плагины\$(NAME_PART).amxx"
Например:
- Код: Выделить всё
cd $(CURRENT_DIRECTORY)
"С:\MY CS SERVER\cstrike\addons\amxmodx\scripting\amxxpc.exe" "$(FILE_NAME)" "-oC:\MY CS SERVER\cstrike\addons\amxmodx\plugins\$(NAME_PART).amxx"
Жмём "Save..." вводим имя "AMXX Compiler", жмём "Save" и закрываем.
Теперь заходим "Опции" -> "Горячие клавиши..."
Переходим в окошко "Plugin commands", щёлкаем два раза по пункту "Execute...", в появившемся окошке меняем кнопку "F6" на "None", жмём "OK".
Щёлкаем два раза по пункту "Direct Execute Previous", убираем галочку рядом с "CTRL", жмём "OK", закрываем "Shortcut mapper".
Компилятор готов, протестируем его.
Открываем какой-нибудь исходник например zombie_plague40.sma.
Жмём F6, выбираем AMXX Compiler, жмём "OK" и смотрим как компилируется плагин.
Настройка автозавершения функций и слов:
Автор статьи: Вы должны зарегистрироваться, чтобы видеть ссылки.
Разработчик: Вы должны зарегистрироваться, чтобы видеть ссылки.
Если Вы настраивали по этой статье Вы должны зарегистрироваться, чтобы видеть ссылки. , желательно удалить нотепад + удалить его записи в реестре.
Необходимые файлы:
Вы должны зарегистрироваться, чтобы видеть ссылки.
1. Скачиваем новый нотепад++ Вы должны зарегистрироваться, чтобы видеть ссылки., устанавливаем.
Идём в опции - настройки- автозавершение
В этом же окне переходим в - Новый документ (если хотите, чтобы новый документ определялся, как исходный код С++)
Ставим - Синтаксис по умолч.: С++
Жмём закрыть.
Далее переходим в опции - определение стилей - в колонке язык выбираем С++
вводим Польз. расширение sma(можно добавить и другие)
жмём Ок.
Закрываем нотепад.
2.Переходим в каталог C:\Program Files (x86)\Notepad++\ (стандартный путь)
Открываем нотепадом файлик langs.model.хмл
Ищем строку :
- Код: Выделить всё
<Language name="cpp" ext="h hpp hxx cpp cxx cc" commentLine="//" commentStart="/*" commentEnd="*/">
заменяем на :
- Код: Выделить всё
<Language name="cpp" ext="h hpp hxx cpp cxx cc sma" commentLine="//" commentStart="/*" commentEnd="*/">
Клацаем сохранить.
Извлекаем AMXX Natives' Parser for Notepad++ из архива на рабочий стол.
Создаём наш sma.хмл:
-в папке include будут содержаться нужные вам файлы из папки include вашего компилятора, например, "*\cstrike\addons\amxmodx\scripting\include";
-запускаем AMXX Natives' Parser for Notepad++.exe;
-здесь же появится sma.xml.
Допустим у нас только инклуд core:
- Код: Выделить всё
<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
<AutoComplete language="SMA">
<Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator=", " terminal="; " additionalWordChar=""/>
<KeyWord name="_core_included" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="heapspace" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="funcidx" func="yes">
<Overload retVal="" >
<Param name="const name[]" />
</Overload>
</KeyWord>
<KeyWord name="numargs" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="getarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
</Overload>
</KeyWord>
<KeyWord name="setarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="strlen" func="yes">
<Overload retVal="" >
<Param name="const string[]" />
</Overload>
</KeyWord>
<KeyWord name="tolower" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="toupper" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="swapchars" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="random" func="yes">
<Overload retVal="" >
<Param name="max" />
</Overload>
</KeyWord>
<KeyWord name="min" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="max" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="clamp" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="min=cellmin" />
<Param name="max=cellmax" />
</Overload>
</KeyWord>
<KeyWord name="power" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="exponent" />
</Overload>
</KeyWord>
<KeyWord name="sqroot" func="yes">
<Overload retVal="" >
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="time" func="yes">
<Overload retVal="" >
<Param name="&hour=0" />
<Param name="&minute=0" />
<Param name="&second=0" />
</Overload>
</KeyWord>
<KeyWord name="date" func="yes">
<Overload retVal="" >
<Param name="&year=0" />
<Param name="&month=0" />
<Param name="&day=0" />
</Overload>
</KeyWord>
<KeyWord name="tickcount" func="yes">
<Overload retVal="" >
<Param name="&granularity=0" />
</Overload>
</KeyWord>
<KeyWord name="abs" func="yes">
<Overload retVal="" >
<Param name="x" />
</Overload>
</KeyWord>
</AutoComplete>
</NotepadPlus>
Вырезаем середину с кнопками, вот так
- Код: Выделить всё
<KeyWord name="_core_included" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="heapspace" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="funcidx" func="yes">
<Overload retVal="" >
<Param name="const name[]" />
</Overload>
</KeyWord>
<KeyWord name="numargs" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="getarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
</Overload>
</KeyWord>
<KeyWord name="setarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="strlen" func="yes">
<Overload retVal="" >
<Param name="const string[]" />
</Overload>
</KeyWord>
<KeyWord name="tolower" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="toupper" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="swapchars" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="random" func="yes">
<Overload retVal="" >
<Param name="max" />
</Overload>
</KeyWord>
<KeyWord name="min" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="max" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="clamp" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="min=cellmin" />
<Param name="max=cellmax" />
</Overload>
</KeyWord>
<KeyWord name="power" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="exponent" />
</Overload>
</KeyWord>
<KeyWord name="sqroot" func="yes">
<Overload retVal="" >
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="time" func="yes">
<Overload retVal="" >
<Param name="&hour=0" />
<Param name="&minute=0" />
<Param name="&second=0" />
</Overload>
</KeyWord>
<KeyWord name="date" func="yes">
<Overload retVal="" >
<Param name="&year=0" />
<Param name="&month=0" />
<Param name="&day=0" />
</Overload>
</KeyWord>
<KeyWord name="tickcount" func="yes">
<Overload retVal="" >
<Param name="&granularity=0" />
</Overload>
</KeyWord>
<KeyWord name="abs" func="yes">
<Overload retVal="" >
<Param name="x" />
</Overload>
</KeyWord>
Идём в каталог C:\Program Files (x86)\Notepad++\plugins\APIs (стандартный путь)
открываем файл срр.хмл
Тут два варианта:
1.Вам нужно с++ и pawn автозавершение ,тогда
- Код: Выделить всё
<Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" additionalWordChar=""/>
<!--
The following items should be alphabetically ordered.
func="yes" means the keyword should be treated as a fuction, and thus can be used in the parameter
calltip system. If this is the case, the retVal attribute specifies the return value/type. Any
following Param tag specifies a parameter, they must be in order. The name attributes specifies
the parameter name.
-->
После строк выше вставляем свой кусок кода заготовленный ранее и нажимаем сохранить.
2. Вам не нужен никакой с++, только pawn
В файле срр.хмл смело удаляем всё кроме
- Код: Выделить всё
<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
<!-- language doesnt really mean anything, its more of a comment -->
<AutoComplete language="C++">
<!--
Environment specifies how the language should be interpreted. ignoreCase makes autocomplete
ignore any casing, start and stopFunc specify what chars a function starts and stops with.
param specifies parameter separator and terminal can be used to specify a character that stops
any function. Using the same character for different functions results in undefined behaviour.
05/11/2009
The basic word character are : A-Z a-z 0-9 and '_'
If your function name contains other characters,
add your characters in "additionalWordChar" attribute (without separator)
in order to make calltip hint work
-->
<Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" additionalWordChar=""/>
<!--
The following items should be alphabetically ordered.
func="yes" means the keyword should be treated as a fuction, and thus can be used in the parameter
calltip system. If this is the case, the retVal attribute specifies the return value/type. Any
following Param tag specifies a parameter, they must be in order. The name attributes specifies
the parameter name.
-->
здесь вставляем код из sma.xml
</AutoComplete>
</NotepadPlus>
на выходе имеем :
- Код: Выделить всё
<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
<!-- language doesnt really mean anything, its more of a comment -->
<AutoComplete language="C++">
<!--
Environment specifies how the language should be interpreted. ignoreCase makes autocomplete
ignore any casing, start and stopFunc specify what chars a function starts and stops with.
param specifies parameter separator and terminal can be used to specify a character that stops
any function. Using the same character for different functions results in undefined behaviour.
05/11/2009
The basic word character are : A-Z a-z 0-9 and '_'
If your function name contains other characters,
add your characters in "additionalWordChar" attribute (without separator)
in order to make calltip hint work
-->
<Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" additionalWordChar=""/>
<!--
The following items should be alphabetically ordered.
func="yes" means the keyword should be treated as a fuction, and thus can be used in the parameter
calltip system. If this is the case, the retVal attribute specifies the return value/type. Any
following Param tag specifies a parameter, they must be in order. The name attributes specifies
the parameter name.
-->
<KeyWord name="_core_included" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="heapspace" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="funcidx" func="yes">
<Overload retVal="" >
<Param name="const name[]" />
</Overload>
</KeyWord>
<KeyWord name="numargs" func="yes">
<Overload retVal="" >
</Overload>
</KeyWord>
<KeyWord name="getarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
</Overload>
</KeyWord>
<KeyWord name="setarg" func="yes">
<Overload retVal="" >
<Param name="arg" />
<Param name="index=0" />
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="strlen" func="yes">
<Overload retVal="" >
<Param name="const string[]" />
</Overload>
</KeyWord>
<KeyWord name="tolower" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="toupper" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="swapchars" func="yes">
<Overload retVal="" >
<Param name="c" />
</Overload>
</KeyWord>
<KeyWord name="random" func="yes">
<Overload retVal="" >
<Param name="max" />
</Overload>
</KeyWord>
<KeyWord name="min" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="max" func="yes">
<Overload retVal="" >
<Param name="value1" />
<Param name="value2" />
</Overload>
</KeyWord>
<KeyWord name="clamp" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="min=cellmin" />
<Param name="max=cellmax" />
</Overload>
</KeyWord>
<KeyWord name="power" func="yes">
<Overload retVal="" >
<Param name="value" />
<Param name="exponent" />
</Overload>
</KeyWord>
<KeyWord name="sqroot" func="yes">
<Overload retVal="" >
<Param name="value" />
</Overload>
</KeyWord>
<KeyWord name="time" func="yes">
<Overload retVal="" >
<Param name="&hour=0" />
<Param name="&minute=0" />
<Param name="&second=0" />
</Overload>
</KeyWord>
<KeyWord name="date" func="yes">
<Overload retVal="" >
<Param name="&year=0" />
<Param name="&month=0" />
<Param name="&day=0" />
</Overload>
</KeyWord>
<KeyWord name="tickcount" func="yes">
<Overload retVal="" >
<Param name="&granularity=0" />
</Overload>
</KeyWord>
<KeyWord name="abs" func="yes">
<Overload retVal="" >
<Param name="x" />
</Overload>
</KeyWord>
</AutoComplete>
</NotepadPlus>
Жмём сохранить.
Удачи.
Список изменений:
v1.0 обновлены вложения
v2.0(09-11-2014) добавлена инструкция по автозавершению функций и слов
v3.0(05-08-2018)
-обновлен текст
-обновленны вложения
-внесена инструкция по добавлению Plugin Manager