|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP Оформление кодов
Инженер LISP
Минск
Регистрация: 11.05.2005
Сообщений: 6,996
|
||
Просмотров: 16053
|
|
||||
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Очень любопытная идея, может, кому и понадобится, но, по-моему, любой программист любой код тут же вставляет во VLIDE. Какой от этого смысл, интересно? Разве только на форуме появится некий движок, в котором можно Ctrl+Alt+E, а затем, например, Шаг с заходом...
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Не любой программист и не любой код. А вот читать подсвеченный код все же проще.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Попробовал LISP Styler, почему-то переменную ss покрасил как функцию в синий...
Код:
Да, было-бы здорово, чтоб по-молчанию, форум сам коды раскрашивал...
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Попробуй скопировать код из #1 и вставить в VLIDE. Он копируется просто как текст без BB кодов
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Конечно, подсветка синтаксиса на форуме нужна. Но делать специальные "расцвеченные" файлы на самом LISP - мягко говоря на любителя. Ради этого запускать AutoCAD, запускать программу....
Вообще-то одна из проблем для любого форума - запрет вставки HTML в текст сообщений. Жестоко, но правильно - иначе такого навставляют... Движок сайта обычно дополняется специальным плагином, например GeSHi. Такой плагин просто обрабатывает обрамленный BB-тегом CODE текст и автоматически выполняет раскраску. Можно указать имя подсвечиваемого языка. Для распространенного в Web PHP подсветка выполнятся прекрасно. Для LISP - хуже, так как гораздо больше "ключевых слов". Но это поддается доработке - проще один раз правила создать. Подробнее об этом у меня на сайте Я лично пользуюсь своей программой ruSourceExplorer (где-то в DNL лежит). При работе с исходниками (они сами раскрашиваются) достаточно щелкнуть кнопку и получаем еще и расцвеченный HTML. Его можно вставить "куда надо". Куда дозволено. А программа Lisp Styler интересная. В академическом плане. Спасибо. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
я не пользуюсь Vlide (мне он не нравится - под лисп есть куча, с моей точки зрения, куда более удобных редакторов). А идея действительно интересная (хоть я и дальтоник
![]()
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Очень интересует, во первых, чем твой любимый редактор лучше и во вторых, как называется. ps. Меня, vlide, тоже не всем устраивает, но замены я не нашел ![]()
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Один из вариантов - Notepad++, там есть возможность добавления собственных ключевых слов. Но лично мне он как-то не очень понравился. Чисто субьективное мнение.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Но надеюсь, действительно есть более продвинутые редакторы, хорошо работающие с autolisp.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Я имел в виду не просмотр, а написание кодов
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Сторонних удобных редакторов не "куча", а маленькая кучка. Но удобных редакторов на все случаи можно и самому написать (если делать нечего). При современном уровне программирования. Включаем, например, в форму компонент SynEdit, подключаем модуль UniHighLigher и наш редактор будет уметь раскрашивать пару сотен типов файлов. А какие не умеет - добавим, не влезая в код. При этом он и все мыслимые действия по правке кода умеет делать. Но и описывать подсветку надо с умом. Вот замечательный Notepad++ делает это весьма примитивно. Там для LISP включено совсем немного "базовых" ключевых слов, только один вид комментариев. Нет возможности задавать правила подсветки с помощью масок и прочее. А редактор VLIDE, между прочим, начинает сам подсвечивать неизвестные ему ключевые слова, если зарегистрирована по определенным правилам библиотека. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
То Евгений и ShaggyDoc - я не писал, что vlide плох - мне его "логика" не понравилась, да он IDE - но насчет инструментария - а зачем он в лиспе, тем более в мультзадачной систме (у меня паралельно горит F2 окно автокада - в нем и проверяю "он лайн"). Для "быстрого просмотра" использую упомянутый notepad++, а непосредственно пишу в редакторе от plt-scheme (ныне Racket). Там ИХМО очень хорошо реализовано автоматическое выравнивание и выделение - подвел курсор к скобке и тебе автоматом выделяет фон до конца\начала пары (как ctrl+shift+] в Vlide - только автоматом), алгоритм выравнивания несколько другой нежили в Vlide и "более автоматизированный" в случае исправления кода - учитывает не только строки, но и контекст операторов - синтаксис влияющих на форматирование в лисп и схеме совпадают. У Vlide есть плюс - выделение ключевых слов (в схеме только строки и цифры - из за разного подхода к количеству встроенного "синтетического сахара") - спасает от "очепяток", но в сравнении остальных достоинств - лично мне это не перевешивает. Жаль только, что не работает (из-за различия синтакисисов) указатель имен (работает в "родном" варианте - схеме) - не просто проверяя по одиноковому имени, но и учитывает "схемологику" программы - то есть подводишь к любому имени - а тебе "стрелочками" указывает где это имя образуется и все места где используется (еще раз повторю проверяет не по имени (они могут совпадать в разных лямбдах), а по реальному применению).
p.s. вот так выглядит один и тот же автоматически выровненный код: Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 12.01.2011 в 11:17. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Дима_, форматирование в VLIDE настраивается по вкусу.
Tools > Environvent Options > Visual LISP Format Options. И выравнивать можно получше, например Код:
F2 никто не запрещает, но из VLIDE можно прямо фрагмент отправить на выполнение. А значения переменных как во внешнем редакторе контролировать? Ты пошарься по меню, там много очень полезного. Нет только ничего "вижуального" кроме убогого предпросмотра DCL. Но это уж обычное маркетинговое жульничество. А вообще-то Autodesk просто прикупила сторонний автономный редактор VitalLISP (его и сейчас иногда использую, просто EXE, даже установки не требует). С горем пополам встроили, как умели. |
|||
![]() |
|
||||
Вот этого, мне кажется, делать совсем не надо! Потому как, по подсветке я понимаю, что правильно написал название функции. А так может получиться, что префикс написан правильно, по маске название подходит и подсвечивается, а такой функции не существует! И ищи потом ошибку...
|
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
2. А переменных у меня давно в коде не встречается (я уж не раз про это писал) Вот последний пример - ну удобней мне так.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Я тоже не люблю использовать переменные, если можно без них и не в ущерб, но всегда помню, какая за это плата! ps. заодно засеки разницу скорости для скомпилированных вариантов.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Евгению:
Вот что меня меньше всего "парит" - так это потеря производительности от рекурсии. При использовании рекурсий я смотрю только на отстуствие хвостовой оптимизации (влезает ли в стек предпологаемое множество итераций) - к сожалению есть такой недостаток автолиспа. Я убежден, что если дать одну и ту же более-менее сложную общую задачу 2 отдельным программистам и попросить одного писать в функциональном стиле, а другого в императивном, то их производительность будет в среднем одинакова (а реализации алгоритмов несколько отличатся - каждый с уклоном в "свою" сторону). Да если переписать готовую "функционально-рекурсивную" программу в императивном стиле - выйгрыш будет (на самом деле лиспы посерьезней делают это автоматически - и упомянутая хвостовая оптимизация тому пример), но он будет не значителен, программа потеряет "лекгость изменений" и самое главное изначально в императивном стиле ее так не напишешь (я точно не напишу) т.к. логика подходов все-таки разная. p.s. - на производительность автолиспа я смотрю так, либо задача решатся - нажал-результат, либо надо серьезно задуматся - тот-ли инструмент используется т.к. выйгрыш от использование итераций лежит в пределах нескольких процентов - то для юзера абсолютно все равно 0.1 или 0.12 секунды ушло на обработку данных. А если задача требует серьезных вычислений и должна производится быстро - тут стоит посмотреть в первую очередь на алгоритм, а если с ним уже ничего не сделать - то в сторону инструментов действительно убыстряющих процесс вычислений в разы - dll(Net), либо отдельный EXE.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А для разных масок в приличном редакторе можно установить и разные цвета. Например, у меня свои функции имеют одну раскраску, функции от kpblc - другую. Различаются "низкоуровневые" и "высокоуровневые". Это очень облегчает работу. Цитата:
Конечно, без лишних переменных надо обходиться. Но с умом. Самое тяжелое - отладка. Вот здесь переменные помогут. Потом код можно оптимизировать, избавиться от переменных. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Мэтр - клянусь Вам - у меня есть "библиотечка" своих функций - когда я смотрю на те функции, что были написанны с использованием переменных - мне в них гораздо тяжелей понять СВОЮ-ЖЕ логику, нежели в "лямбдовых".
Если нет переменных - отладки на порядок меньше (т.к. самая большая "неразбериха" как правило из-за них и происходит).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
А мдшву имеет подсветку переменных? Как notepad++
Цитата:
![]() ![]() ![]() Последний раз редактировалось gomer, 12.01.2011 в 20:35. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Под словом переменная подразумвается обозначние меняющее свое значение в ходе программы (если аргумент всегда одинаков - то его и "отлавливать" не нужно - что не скажешь про переменные). Насчет вывернутости - давайте говорить обоснованно.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
лекго - см. пример из #19. если не понятно - приведи свой
p.s. более того - как раз в "циклах с ветвлением" и всплывает "запутка" с переменными - надо в каждой подветке учесть откуда она могла "приветвится" и что сейчас творится с перемнной (или наделать на каждую комбинацию свою перемнную - а это как правило совсем не мало).
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 13.01.2011 в 01:34. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
По просьбе Евгения выкладываю SciTE. Сборка ruboard + моя доработка добавил лексический анализатор языка apdl и еще чего-то не помню.
На лучший редактор не претендую, но с влайд не дружу. 1) ненавижу отладку - и в итоге ей не пользуюсь. 2) много тупых вещей типа окно трассировки нужно закрывать постоянно. SciTE - не требует установки, распространяется по GPL. Полностью настраивается с помощью скриптов - разбираешься в существующих скриптах (коментариях) и делаешь по образу и подобию, так можно добавлять свои элементы в падающее меню, назначать сочетание клавишь и т.п. А в данный момент пишу под брикс а потом адаптирую под акад, уже стал получаться сразу кроссплатформенный код. |
|||
![]() |
|
||||
Дима_, в параллельной ветке, вы сказали:
Попробуйте переписать без переменных или значительно сократив их количество. Я не со зла, просто действительно, не всегда код будет проще и легче.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Евгению - у Вас нет ни одного значения меняющего свое состояния (переменной) - да алгоритм имеет много имен - как их обозначить через (defun xxx ( / a b c) (setq a 1 b 2 c 3)(XXX)) или ((lambda (a b c)(XXX)) '(1 2 3)) ИХМО разницы ни какой - мне удобней второй вариант - вот если бы Вы в цикле "крутили" переменными - там было-бы много мест где запутатся. У setq есть преимущество - сразу после определения имени - в том же операторе, его можно использовать, то есть - (setq a 5 b (* a 2)) вполне законен, такой отдельной "рекурсивной" лямбды в автолиспе не предусмотренно, но минус что перед тем как использовать переменную - ее неплохобы вынести в локальные - это как правило делают непосредственно в defun'е (лямбды отдельно для обозначения писать нет смысла - но если лямбда и так используется (например внутри mapcar'а) - то можно) и в этом и есть "камень преткновения" - если мы используем эту переменную (именно как переменую) - надо всегда четко осознавать из какого места программы вызывается функция используящая ее и вот эти ошибки в "сложнозацикленной" программе замучаешся отлавливать с любым отладчиком. Я лет 15 программировал на "сугубо" императивном ассемблере - там количество именно переменных доходит до тысяч (плюс стек, плюс регистры). Когда перешел на функциональные языки - поверьте испытал "глубокое счастье" - стоит один раз "въехать" и обратно уже не хочется.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Рисование неких произвольных прямолинейных сегментов (наподобие команды LINE). Как именно рисуется "сегмент" - задается именем функции рисования, которое передается аргументом. У функции рисования должно быть два обязательных аргумента - точки начала и конца и, факультативно, какой-то список иных аргументов, которые она уже сама знает. В частном случае, для простоты, это может быть просто отрезок. Но "главная" функция должна: 1. В цикле, до пустого ввода запрашивать точки начала (первый раз) и конца сегмента (до выхода). 2. При этом должны выводиться опции "Предыдущая Начало Откат". "Предыдущая" - это автоматическая привязка начала сегмента к предыдущей первой точке, а "Начало" - запрос новой первой точки. "Откат" - отмена только что нарисованного сегмента. "Предыдущая" точка может быть взята и из прежнего запуска этой программы. 3. Разумеется ввод должен быть защищен от возможных ошибок и недопустимых прерываний. Точки должны быть трехмерными. 4. После ввода очередной точки сегмент должен сразу отрисовываться. Задача несложная. Пригодится абсолютно всем. Вот и можно потренироваться и с переменными, и с лямбдами. Только должно работать без присутствия автора и даже у "обезьяны с гранатой". Требований к форматированию кода и подсветке синтаксиса нет. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Мэтр - Вы сомневаетесь что я сюда не смогу добавить vl-catch-all-apply?
p.s.Offtop: я не только тут автолиспом развлекаюсь, но и куда более реально пишу на коммерческой основе, а там не до академических понтов - т.к. за них отвечать придется материально.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 13.01.2011 в 11:51. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
В незначительных количествах - есть моменты плохо (или вообще не) реализованные в автолиспе (замыкания, ограниченность рекурсии и пр.) - если задача выходит за установленные в автолиспе пределы - приходиться "мучатся", ну и естественно есть глобальные переменные. В не автолисп приложениях - только внутри объектов (ООП).
p.s. Короче для реализации алгоритмов я предпочитаю использовать не изменяемые состояния определителей. Достало меня уже объяснять - я никого здесь не уговариваю поступать так-же. Но прошу только - если не понятно как я пишу - не надо меня учить как писать императивно, чтоб вам было понятно - умею я это, но мне так не нравится. Если кто-то не понимает и хочет спросить в чем суть такого способа - другой вопрос. p.p.s Только, не подумайте - мол изучил рекурсию и строит из себя умного - я многие вещи в автолиспе не знаю и переодически об этом здесь спрашиваю. Мне такой стиль больше по душе - это из разряда советов (или тем более "рьяных" споров) что вкусней - чай, кофе или какао.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 13.01.2011 в 12:19. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Я просто предлагаю написать конкретную программу. Не маленький фрагмент, а в целом, с конечным результатом. Сроками никак не ограничиваю, можно и через год. Только не говорить, что "если бы не Автолисп". И не как могу, а как надо. "ТЗ" могу уточнить. Чтобы не отвлекаться на исследования, могу помочь готовыми кусками - можешь оптимизировать "по лямбда-исчислению". В своем стиле. А мы все поучимся. А ты её сможешь продавать на коммерческой основе. Одна такая функция заменит десятки разношерстных программ. Offtop: Сегодня на Хабре интересная заметка "Новый программерский жаргон". Известен термин "рефакторинг" (refactoring) - — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. И появился термин Рефукторинг (Refuctoring) Это когда вы берёте хорошо продуманный кусок кода и с помощью последовательности небольших обратимых преобразований превращаете в нечто абсолютно непонятное никому, кроме вас. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
В тексте HTML не должно быть тегов типа FONT color=red, а должны быть ссылки на стили, наподобие span class="bracket". А классы должны быть определены в таблице стилей (которая может быть одна на сайт, а то и на весь Интернет). Но пока мало какие программы умеют так делать. Я тоже свои не научил, у меня тоже такой же HTML получается. Это плохо. |
|||
![]() |
|
||||
Цитата:
![]() У Lee Mac в исходном коде так и сделано, но я пока что так не умею. Состряпал как смог ![]() |
||||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
1. Муссиано Ч., Кеннеди Б. HTML и XHTML. Подробное руководство, 6-е издание. Символ-Плюс, 2008. - 752стр. 2. Мейер Э. CSS-каскадные таблицы стилей. Подробное руководство, 3-е издание. Символ-Плюс, 2010. - 576 стр. 3. Фленаган Д. JavaScript. Подробное руководство, 5-е издание. Символ-Плюс, 2009. - 992 стр.
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
![]() |
|
||||
Регистрация: 28.04.2009
Сообщений: 302
|
Для общей информации о форматировании лисп-кода отмечу в дополнение к прочему сервис http://lisper.ru/apps/format/create хотя там и нет конкретно autolisp.
Цитата:
Как бы то ни было, форматирование "лесенкой" в лисп-сообществе считается стандартом и читается лучше, но требует определенного привыкания. И в этом вопросе, пожалуй следует поступаться привычками и вкусами. Т.е. вырабатывать себе правильные привычки и вкусы. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
|
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
![]() Но книга очень достойная: качественный учебный материал + профессиональный перевод + полный справочник по JavaScript вообще и по клиентскому (практическому JavaScript для браузеров) в частности + твердый переплет, качественная бумага и печать.
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Тема кому интересна?
Тестировал недавно программу-граббер. И сграбил все имена lisp-функций со справочной системы AutoCAD 2015. Со страниц: http://help.autodesk.com/view/ACD/20...D-7060F5E16547 http://help.autodesk.com/view/ACD/20...4-FB57BAB01C44 Предполагаю, что 99,9% а то и все 100% имен сграблено. В итоге получил полный список AutoLISP функций в текстовом формате которые можно использовать в качестве ключевых слов для подсветки символов в различных редакторах. Например Notepad++. Есть некоторые редакторы в которых функции подсвечиваются по маске. Например если ключевое слово (vlax-) то будет подсвечено и vlax-get-acad-object и vlax-bla-bla-bla. Наличие полного списка подсвечиваемых слов хорошо тем что подсвечиваться будут только они и ничего больше. Во вложенных файлах весь перечень функций в .txt и файл пользовательского синтаксиса для notepad++ 6.7.4 Перед установкой нового синтаксиса нужно в настройках np++ деактивировать стандартный lisp-синтаксис (будет постоянно переключаться на себя). Для установки зайти в меню Синтаксисы - Задать свой синтаксис - Кнопка Импорт - дальше разберетесь. Маленький недостаток NP++ в том, что он подсвечивает комментарий одной строки только с двумя ";;". |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Offtop: mmax, решил вернуться на форум и в лисп? Я рад очень этому
![]() Давно тебя не слышно было, похоже, жить долго будешь, вспоминал я тебя буквально только что. А тема да, интересная, правда я уже давно перенастроил под себя синтаксис встроенного в NPP языка LISP. Причем рыл на всяких форумах, как-то еще - не помню, находил списки функций, загонял их в Excel, "сцеплял", фильтровал, сортировал и очень доволен результатом. Но почему-то здесь мой энтузиазм встретили жесткой критикой, мол, на лиспе кодить нужно во влайде. Где ж ты был года два-три назад, когда я с этим разбирался? ![]() |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
не нужно.
можно в автокаде сделать панельку с 2 кнопками 1. Загружает лисп-файл с диалоговым окном выбора файла 2. загружает последний загруженный лисп-файл. Вот вам и пожалуйста - миниверсия VLIDE. Там тоже используется только одна кнопка типа "Загрузить активное окно редактора" А еще в нотпаде есть функция запуска программ. Эта штука теоретически может сделать так чтобы лисп-код активного окна редактора NP++ сразу улетал в автокад |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Так я и не стал. Кодить во VLIDE. А стал форматировать, и то не всегда: не очень мне по душе то, как он это делает. И отлаживать - и тоже не каждый раз, только особо тяжелые случаи: частенько уже коды работают сразу, а логика мне как автору вполне ясна и где искать ошибку, почти всегда сразу понятно, если заранее хорошенько продумать алгоритм и предчувствовать поведение Автокада, основываясь на опыте и интуиции. В NPP, однако, нет таких полезных вещей, как точки останова, шаги с заходом, удобный контроль переменных и прочих...
Но чаще все равно пишу в NPP и там же отлаживаю. В процессе отладки я на запуск функции вешаю принудительную загрузку ее же самой. На одном экране код: подправил, сохранил. На другом - Автокад: в нем нажал стрелку вверх и Enter - получил результат. Или ошибку. Тогда снова а блокнот - и снова тест... Дима_, знал я тогда такую возможность, когда искал, но мне очень не понравилось, в каком беспорядочном виде все это "распечатывается" в комстроке. Мало того, что не по алфавиту - это можно легко решить в Excel, так еще и все в верхнем регистре. В NPP подсветка синтаксиса регистрозависима, и так сложилось, что полунегласно-полуофициально часто в двух-трехсложные именах функций VLISP каждый "слог" начинается с заглавной. Мне это тоже нравится, и я в список автозавершения в XML-файле добавил все функции в таком виде и всегда стараюсь придерживаться этого в своих кодах. Потому что тогда, в свое время, в таком виде мне их удалось найти. А в список подсветки добавил и в таком виде, и в нижнем регистре, поскольку на форуме часто не заморачиваются с этим регистром, все пишут в нижнем, но очень и очень редко я видел коды в верхнем. Перевод же из "разнорегистрового" варианта в нижний в автоматическом режиме - не проблема, однако обратное - неверно. Поэтому, в данном случае, "атомсфэмили" - не вариант. Другое дело, в каком виде представлены функции у mmax'а. Заглядение - порядок полнейший. К тому же в готовом виде. Вставляй в нотпад и кайфуй. Спасибо, mmax. Там, кстати, я все же кое-что для себя полезного нашел. ![]() |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
я не ползал в стандартные файлы синтаксиса. В НП++ есть пользовательский инструмент в котором можно поставить галку на регистрозависимость
----- добавлено через ~20 ч. ----- Видео про то как NPP постепенно превращается в VLIDE.
Это не видеомонтаж. Последний раз редактировалось mmax, 22.01.2015 в 19:57. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) | Red Nova | LISP | 5022 | 02.07.2025 07:20 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
Как создать lisp Тройника | Boo87 | LISP | 25 | 16.08.2010 19:54 |
Запуск Lisp команды в новом документе | BlackHarp | LISP | 1 | 26.03.2009 23:06 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |