Вопрос: закрываю ноутпад - функции свернуты (см.картинку)... Открываю - опять зараза все развернуты. Как это можно побороть?
Побороть никак. Данная фишка сделана для удобства только на время разработки.
Жаль... глючит иногда, перезапускать приходится. И ресурса с памятью (на откатах видимо) много кушать начинает. Но все равно спасибо, теперь хоть ясность есть.
Хм... Глючит? Это странно. У меня за всю работу никогда не глючил.
Попробуй обновить версию.
Лично я ставлю ansi версию, так как под юникод нет плагина FunctionList, который очень удобен. С данным плагином и не нужно свёртывать функции, просто щёлкнул по нужной, и курсор установился на начало это функции
где?
Есть только под ansi:
Вот зачем выкладывать хрен знает куда? Там же срок хранения есть... Прилагаю.
виноват, не подумал
Тоже хочу пять копеечек внести. Оказалось, у меня НоутПад 4.7.2 (рус). Пробовал подключить FunctionList 2 Alfa - не пошло. Порылся, нашел дллку 1.2 версии, подключил, все замечательно. Очень удобная и полезная фича. Прикреплю ее тут на всякий случай.
Когда ботик строк так на 50, то может и ничего, а вот когда под 3000 - вот тут очень много времени тратится на шарахания в поисках нужного места в коде. Тут-то плагин и выручает.
3000 строк - это жёстко. Подобного рода коды просто необходимо дробить на файлы, чтобы самому же не запутаться
А вообще, советую любой достаточно большой проект дробить на файлы по функциональности того или иного класса выполняемых задач. Дробление на файлы - это хороший тон программирования.
Так я не против разделения (дробления), кое-что уже научился делать - подключать модули способом dofile... Просто, как написано в одной мудрой книге, "Есть время разбрасывать камни, а есть время их собирать". Вот соберем все в кучу, осмыслим, что получилось, а там и подробить можно будет.
... вот кстати и вопрос сразу же, по теме. Есть несколько подключаемых модулей. В настройках выбирается, использовать тот или другой. Соответственно, они вызываюся при старте скрипта или не вызываются. А как быть с совершенно невообразимой длины ChatArrival ? Как его функционально разделить, возможно ли это? Пока что в нем предусмотрена отработка команд для всех возможных модулей, т е ChatArrival единый и неделимый.
... а впрочем чуть подумав уже раскидал. Получился центральный модуль, около 1500 строк, там в основном ChatArrival, Main, таблицы под генерацию "матричного" меню с невообразимым количеством возможных команд, да функции вспомогательные для формирования и вывода отчетности. И семь подключаемых модулей, разбитых по функциональной принадлежности... Переменные локальные в центральном модуле большей частью пришлось на глобальные переделать - а как же, без них модули работать отказываются ;) В общем, мне это нравится
Ты на верном пути. Вот только размышления не совсем верные. Нужно написать систему плагинов, которая будет подключать тот или иной модуль, и выполнять ту или иную функцию из модуля, отвечающую за то или иное действие. Центральный модуль должен содержать минимум строк для того, чтобы его можно было легко переписать под работу на другом api или вовсе под другой хаб (со своим api). Также стоит выделить отдельно модуль отсылок сообщений, модуль api функций, модуль хранилища информации (файлы или бд), модуль протокола, модуль утилит, модуль конфигурации, модуль-дебагер, модуль запросов, модуль обработки команд ну и тд. и тп. Тут дел много. Да и вот ещё... Нужно всякими способами избегать использование глобальных переменных, так как обращение к локальным переменным происходит быстрее.
Именно модульная система позволяет с минимальными затратами (переписав всего лишь пару модулей) адаптировать скрипт под работу на другом протоколе, или на другом хабе, или под другой api, или с другим типом хранения информации и тп.
Несколько слов про подключение модулей (как избежать использование глобальных переменных).
Пример:
Допустим у нас есть какой-то основной файл скрипта test.lua и файл модуля module.lua (файлы находятся в одной папке)
test.lua
Нечаянно наткнулся на ту фишку, с поиска которой начался топик. Сочетание Alt+1 сворачивает все функции... Теперь ищу сочетание, которое разворачивает их обратно
Может все-таки быть альтернативой плагину, иногда. Он как-никак занимает часть экрана, а это не всегда удобно ( приходится включать перенос строк), да и функции искать глазами иногда удобнее не в вынесенном списке, а "вживую" .
Попутно наткнулся на очень замечательную фишку дублирования строки, на которой установлен курсор : Clrl+D
Хехе.
Этих открытий можно было и не делать, а просто посмотреть список горячих клавиш (меню Опции -> Горячие клавиши)
Кстати, там можно устанавливать свои собственные горячие клавиши Например, удобно установить горячую клавишу на действие "копировать имя файла в буфер обмена".
Я для себя установил клавишу F5 - запуск приложения из командной строки, F9 - скомпилировать lua код
Setuper
Ну дык, было бы время детально прогу изучить - и вопросов бы не было ))
Тогда еще пара вопросов.
1.Вот сместить ( табулировать ) выделенный кусок кода вправо - это понятно как, а вот влево - бывает такое ? Если да, то как это делается ?
2.Что означает "скомпилировать Lua-код"?
А зачем влево? Есть настройка табулирования. Я себе установил, чтобы табуляция заменялась двумя пробелами - это распространённое действие.
Скомпилированный lua код - это означает использование luac для получения бинарного файла из обычного текстового.
Хм... не знаю что ты там двигаешь, у меня всегда все нормально получается.
Просто нужно настроить табуляцию на замену двумя пробелами.
У меня тоже получается, но сдвигать влево приходится построчно.
Поэтому был ВОПРОС : Возможно ли в Ноут Пад ++ сдвигать(табулировать) группу строк влево так же легко, как сдвигается выделенная группа строк вправо.
Shift+Tab сдвигает влево
PomanoB
"+1", как выражается молодежь
У меня встречный вопрос есть
Можно ли каким-нибудь образом выполнить последовательность различных команд в командную строку?
То есть запустить компилятор с параметром имя текущего файла, и скопировать получившийся файл в нужную директорию
Можно.
Вкладка запуск, меню запуск))
Это понятно, мне нужно несколько команд выполнить, можно конечно bat файл сделать, но это как-то плохо
Попробуй поюзать плагин NppExec.
Ок, спасибо, попробую