Редактор для ищущих проблемы - Multi-Edit 2 / Foton
Добавлено: 19 дек 2019, 22:42
Никогда не работал с Multi-Edit'ом, но, ознакомившись с эпическим трудом SergeCpp viewtopic.php?f=4&t=263, решил, что получу немалое удовольствие от процесса овладения этим шедевром. Версия 7 показалась мне слишком роскошной, и я решил заняться более суровой, но, наверное, более простой 2й версией. Не сказать, чтобы это мое мнение о 2-й версии оказалось совсем неверным. Но ...
В общем ME 2/Foton оказался своеобразной головоломкой, способной порадовать любителей экстрима. В этом плане у него много! много! достоинств. Самое первое, с чем сталкиваешься сразу - это мощный, богатый макроязык и объемистая библиотека весьма полезных макросов в файле MESYS/FTSYS.MAC. И сразу начинаются положительные эмоции - огромная часть этого богатства или не работает, или работает не так как задумывалось.
После принятия решения разобраться в причинах такого неправильного поведения легендарного редактора положительные эмоции становятся еще более яркими, так как обнаруживается, что документации по языку нет, декомпилятора тоже нет. Есть документация к 4-й версии ME. Однако там оговорено, что в язык не только добавляются новые возможности, но и удаляются какие-то старые, перечня этих изменений со 2й версии ожидаемо тоже нет )
В общем, есть где мозги поломать.
Мое внимание сначала привлекла несуразная работа макроса, осуществлящего форматирование абзацев. Но потом я подумал, что неработающий макрос рисования таблиц - более необходимая с практической точки зрения вещь.
Суть проблемы: клавиши AltL должны переводить ME2/Foton в режим рисования линий псевдографикой с автоматической корректировкой сочленений (как в последних версиях Лексикона). Но на практике можно лишь без толку гонять курсор по экрану. Линии и не рисуются, и не стираются, что в Foton'e, что в ME. Долго я предполагал, что дело в ошибке программиста, писавшего макрос. Но настоящая причина оказалась совсем другой, и она меня озадачила еще больше. Возможно, те, кто длительно работал на ME смогут ее разъяснить.
В общем, откуда все берется. В макросе linedraw рисование осуществляют комбинацией Shift'a с клавишами перемещения курсора, а перемещение курсора без рисования - теми же клавишами, но без Shift'a. В макросе производится обработка скан-кодов нажатых клавиш, в зависимости от чего осуществляются различные операции. Согласно документации к 4-й версии ME, нажатие клавиши, к примеру, "курсор влево" выдает скан-коды 0 и 77, при одновременном нажатии с клавишей Shift - 54 и 77, с клавишей Ctrl - 0 и 116. На самом же деле редактор выдает (даже вне макроса) в первом случае 0 и 77, во втором - ТОЖЕ 0 и 77, в третьем 0 и 116 (проверено по AltK). Соответственно, скан-код, вызывающий рисование, в макрос просто не поступает! Это справедливо и для остальных клавиш управления движением курсора. В то же время, сочетания букво-цифровых клавиш с Shift и Ctrl обрабатываются совершенно правильно.
Что это - ошибка в самом ME? Или изменение его настроек, до которых я не добрался? Во всяком случае, отключение руссификатора тоже не меняет дела.
В общем, очень интересно. Ведь макрос испытывали же в свое время (в 1988 году), и он, наверное, работал нормально?
Выход есть - переписать макрос на сочетание управляющих клавиш с Ctrl, но загадка останется. И, чувствую, подобных загадок в ME 2 еще не одна.
P.S. Можно было бы перенести сообщения за ноябрь 2019 г. из темы "Multi-Edit 7.0" сюда, так как они там смотрятся чужеродными.
В общем ME 2/Foton оказался своеобразной головоломкой, способной порадовать любителей экстрима. В этом плане у него много! много! достоинств. Самое первое, с чем сталкиваешься сразу - это мощный, богатый макроязык и объемистая библиотека весьма полезных макросов в файле MESYS/FTSYS.MAC. И сразу начинаются положительные эмоции - огромная часть этого богатства или не работает, или работает не так как задумывалось.
После принятия решения разобраться в причинах такого неправильного поведения легендарного редактора положительные эмоции становятся еще более яркими, так как обнаруживается, что документации по языку нет, декомпилятора тоже нет. Есть документация к 4-й версии ME. Однако там оговорено, что в язык не только добавляются новые возможности, но и удаляются какие-то старые, перечня этих изменений со 2й версии ожидаемо тоже нет )
В общем, есть где мозги поломать.
Мое внимание сначала привлекла несуразная работа макроса, осуществлящего форматирование абзацев. Но потом я подумал, что неработающий макрос рисования таблиц - более необходимая с практической точки зрения вещь.
Суть проблемы: клавиши AltL должны переводить ME2/Foton в режим рисования линий псевдографикой с автоматической корректировкой сочленений (как в последних версиях Лексикона). Но на практике можно лишь без толку гонять курсор по экрану. Линии и не рисуются, и не стираются, что в Foton'e, что в ME. Долго я предполагал, что дело в ошибке программиста, писавшего макрос. Но настоящая причина оказалась совсем другой, и она меня озадачила еще больше. Возможно, те, кто длительно работал на ME смогут ее разъяснить.
В общем, откуда все берется. В макросе linedraw рисование осуществляют комбинацией Shift'a с клавишами перемещения курсора, а перемещение курсора без рисования - теми же клавишами, но без Shift'a. В макросе производится обработка скан-кодов нажатых клавиш, в зависимости от чего осуществляются различные операции. Согласно документации к 4-й версии ME, нажатие клавиши, к примеру, "курсор влево" выдает скан-коды 0 и 77, при одновременном нажатии с клавишей Shift - 54 и 77, с клавишей Ctrl - 0 и 116. На самом же деле редактор выдает (даже вне макроса) в первом случае 0 и 77, во втором - ТОЖЕ 0 и 77, в третьем 0 и 116 (проверено по AltK). Соответственно, скан-код, вызывающий рисование, в макрос просто не поступает! Это справедливо и для остальных клавиш управления движением курсора. В то же время, сочетания букво-цифровых клавиш с Shift и Ctrl обрабатываются совершенно правильно.
Что это - ошибка в самом ME? Или изменение его настроек, до которых я не добрался? Во всяком случае, отключение руссификатора тоже не меняет дела.
В общем, очень интересно. Ведь макрос испытывали же в свое время (в 1988 году), и он, наверное, работал нормально?
Выход есть - переписать макрос на сочетание управляющих клавиш с Ctrl, но загадка останется. И, чувствую, подобных загадок в ME 2 еще не одна.
P.S. Можно было бы перенести сообщения за ноябрь 2019 г. из темы "Multi-Edit 7.0" сюда, так как они там смотрятся чужеродными.