Версия: 0.5 beta Автор: ColR_iT Это не то, чтобы программа и даже не утилита - это скорее затачивание малоизвестных функций Notepad++ под нужды модмейкеров Сталкера. Малоизвестная функция - это окно отображения списка функций/методов того или иного языка программирования. Я не буду рассказывать с чего всё началось, а просто покажу, что получилось...
Список функций
Список функций. Отображение списка классов и его методов в виде разворачиваемого списка, а также отдельных функций (табличных в том числе). Итого, скрипт распознаёт функции/методы следующего вида:
Код
function funcName1(paramName) end local function funcName2(paramName) end local funcName3 = function (paramName) end function class_name:method_name (paramName) end tableName.funcName4 = function (paramName) end
В последнем случае, к имени функции вначале допишется имя таблицы (кроме случая, когда функция была объявлена внутри самого конструктора таблицы).
Комментарии. Учитывается и наличие комментариев в тексте, как одно-, так и много- строчных. В общем и целом, поведение такое же, как их бы воспринял сам Lua.
Список функций. В данном случае поведение списка функций приобрело несколько иной вид. Так, например, если это конфиг-файл логики, то в качестве имени "класса" будет выступать секция logic (полное её название), а "методов" - секции (схем) принадлежащие к данной секции logic. Если же это обычный конфиг-файл, то просто будут перечислены имена секций.
Комментарии. Способ комментирования остался прежним - символ точки с запятой, но имеет значение в каком месте он стоит: 1. Если комментарий стоит перед открывающейся квадратной скобкой секции logic, то в списке функций данной секции не будет, в том числе и причастных к ней, другими словами вырезается целиком вся логика; 2. Если комментарий стоит перед открывающейся квадратной скобкой любой другой секции/схемы, то из списка функции удаляется только эта секция; 3. Если комментарий стоит перед словом active в секции logic, то данная секция логики, ранее группировавшаяся как "класс" будет разбита на "функции" и каждая секция будет отображаться в конце списка функций отдельно.
Уточнения. 1. В силу реализации опции показа списка функций в Notepad++, для того, чтобы корректно отобразить последнюю секцию логики в файле (актуально для конфиг-файлов гулага), необходимо в конце файла на новой строке дописывать комбинацию деление и пробел: "/ ", либо пустую секцию logic без параметра active: [logic]. Такая строка не приведёт к сбоям игры или другим неприятным моментам. К сожалению от этого никак не избавиться. 2. Всё из-за той же реализации данной опции в самой программе, в секцию logic будут включены все принадлежащие ей схемы, которые находятся ниже неё, т.е. поиск необходимых схем не осуществляется по ссылка прописанным в параметрах, а выискиваются только те, что ниже по списку и до следующей секции логики.
Для .xml файлов это был эксперимент и по факту он не закончился (собственно именно поэтому это beta) и гарантировать правильную и быструю работу я не могу.
Список функций. Группировка в "классы" реализована только для диалогов. В качестве имени "класса" используется название диалога. Методами же выступают id фраз, после которых следуют символ ">" и id переходов на другие фразы из текущей, если таковые вообще имеются. Выглядит это не очень эстетично, но при наличии небольшой сноровки - это не столько критично. Если же это файл отличный от структуры диалога, то в списке функций будут отображаться id следующих тегов: game_task, article, character, info_portion и specific_character, которые находятся в соответствующих файлах.
Добавляет меню автозавершения имён функций/методов при начале ввода оных. Т.е. Вы начинаете набирать имя метода, после чего появляется меню в котором будут отображаться все методы начинающиеся на уже набранные символы, после нажатия Enter оставшаяся часть имени допишется автоматически. При начале ввода параметров данного метода, а точнее при написание открывающейся круглой скобки, появится подсказка с описанием данного метода, возвращаемого значения и его параметрах. Описаны только класс game_object и пространств имён game и level.
Опция требует некоторого обучения, которое достаточно подробно описано в ReadMe.txt лежащий в архиве. Настоятельно рекомендую прочитать имеющийся там пункт 3 (Использование -> Autocompletion). Способ включения описан так же в ReadMe.
Для скачивая доступна программа для автоматического генерированния файла lua.xml, предназначенный для автозавершения и подсказок при вводе имени функции или метода. Инструкция по использованию находится в самой программе и доступна по нажатию F1 в программе.
Проверка синтаксиса Lua
Полноценный плагин за авторством Charsi, за что ему преогромное спасибо! Думаю многие его ждали. Принцип работы прост: Вы пишите скрипт, нажимаете комбинацию клавиш Alt+S (или выбираете соответствующий пункт меню "Плагины -> ~~Lua Plagin~~ -> Проверка синтаксиса" и видите результат.
Список функций: Скопировать файл functionList.xml из архива в директорию: для Windows XP: C:\Documents and Settings\<your user name>\Application Data\Notepad++\ для Windows 7 / Windows 8: C:\Users\<your user name>\AppData\Roaming\Notepad++\ На запрос о замене ответить утвердительно.
Автозавершение: Скопировать файл lua.xml из архива в директорию: для Windows XP: C:\Program Files\Notepad++\plugins\APIs\ для Windows 7 / Windows 8: C:\Program Files (x86)\Notepad++\plugins\APIs\ На запрос о замене ответить утвердительно.
Проверка синтаксиса: Поместить .dll файл в папку: для Windows XP: C:\Program Files\Notepad++\plugins\ для Windows 7 / Windows 8: C:\Program Files (x86)\Notepad++\plugins\ (потребуется перезапуск программы Notepad++)
Яндекс.Диск P.S. Внутри имеется ридми с описание и небольшим F.A.Q., который я рекомендую к прочтению.
Предложения по улучшению функционального и визуального вида - приветствуются!
Категорически запрещены публикация данного материала в любом виде, а также размещение ссылок на скачивание данного "дополнения" к программе Notepad++ на сайтах amk-team.ru и amk-2.ru, а также их форумах без согласия автора. Эта тема - единственное и последнее место в котором был опубликован данный материал. Данное утверждение не относится к плагину проверки синтаксиса, автором которого я не являюсь.
Сообщение отредактировал BozKurt - Четверг, 11.01.2018, 01:12
Добавлено (03.07.2014, 18:31) --------------------------------------------- Единственное что немного напрягает это то, что когда когда в списке очень много секций, notepad++ подвисает прилично так при загрузке этого файла.(например dialogs_zaton.xml). И подвисает не только при загрузке файла, но и при переключении на него.
Сообщение отредактировал antonnkz76 - Четверг, 03.07.2014, 18:33
Я об этом написал. xml - был экспериментом, который не окончился. На последней версии Notepad++ 6.6.7 тормоза чуть короче, но они есть. Если уж очень сильно напрягает, то можно в файле удалить или лучше закомментировать вот эту строку: <association langID="9" id="xml_node"/> таким образом для .xml файлов список функций работать не будет.
Нужно быть хотя бы юзером в компьютере... Напишу для лузеров: Windows 7/8 1. Диск C:\ (или другое имя диска, на котором у тебя стоит ОС); 2. Папка "Пользователи"; 3. Папка с именем пользователя ОС; 4. Папка "AppData" (скрытая папка); 5. Папка "Roaming"; 6. Папка "Notepad++" (вот сюда и кидаешь).
MrBarOff, А, ну да, это ведь для тебя тема, я и забыл . А если серьёзно то этот кпд для проги не очень, лично мне стало не удобно. И дело даже не в этом кпд а в версии проги 6.6.7, заторможенная она какая то, намного быстрее версия 5.6.3.
BozKurt, На втором скрине идёт обращение к lua_help.script или же к собственным ресурсам. И будет ли поддержка новых ф-ий из x-ray extetion и 1.0007 движка. Там ведь много новых ф-ий добавлено.
скат, скат, у меня производительность на последней версии выросла. Правильную работу данной опции на версии ниже 6.5.2 я не могу. ins33, обо всём об этом я расскажу, когда выложу дополнение.
Добавлен ещё одни независимый плагин позволяющий приблизить использование Notepad++ к наиболее сильной IDE для написания скриптов для Сталкера. Все изменения в шапке. ВНИМАТЕЛЬНО читаем ReadMe в архиве - ничего сложного там нет. В любом случае, кому нужно - разберутся. Функционал "Списка функций" изменён не был. По прежнему принимаются предложения по улучшению функционального и визуального вида.
Сообщение отредактировал BozKurt - Воскресенье, 06.07.2014, 00:41
Интересно, почему ты старым ником подписался, хотя сидишь тут совсем под другим ником?
ЦитатаBozKurt ()
Категорически запрещены публикация данного материала в любом виде, а также размещение ссылок на скачивание данного "дополнения" к программе Notepad++ на сайтах amk-team.ru и amk-2.ru, а также их форумах без согласия автора.
Чем же тебе AMK и AMK-II не нравятся? Или это как-то связано с новой администрацией?
ЦитатаBozKurt ()
Малоизвестная функция
Интересно, с каких пор фишка с автозаполнением и подсветкой кода стала малоизвестной функцией? *.xml-файлы и без всяких манипуляций отлично подсвечиваются и предлагается автозаполнить куски. *.script-файлы - Синтаксисы -> L -> Lua. Ну а вот с *.ltx уже блокнот настраивать надо За статью и плагин спасибо. Всё-таки подобного нигде не выкладывалось
Сообщение отредактировал UserVectorXr26 - Воскресенье, 06.07.2014, 14:45
Категорически запрещены публикация данного материала в любом виде, а также размещение ссылок на скачивание данного "дополнения" к программе Notepad++ на сайтах amk-team.ru и amk-2.ru, а также их форумах без согласия автора.
Почему? Если не секрет.
Сообщение отредактировал Enclave - Воскресенье, 06.07.2014, 15:53