Еще один текстовый редактор
-
Было бы полезно добавить поиск выделенного текста. ПРи нажатии Ctrl-F, если тект выделен, то ищем его.to infinity and beyond
Сделано (rev9197).
Выделенный текст должен быть однострочный и без символов табуляции.
Выделенный текст должен быть однострочный и без символов табуляции.
Здравствуйте, ваш редактор безусловно на данный момент лучший в КОС, однако мне немного не понятно почему бинарник такой огромный. Он больше Eolite, и Webview. Нельзя никак сократить размер?
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Не такой уж он и огромный. Редактор TextEdit, который теперь перенесен в ISO, занимал в образе вместе со всеми своими файлами лишь на пару килобайт меньше.
Можно уменьшить размер сжатого бинарника на ~17%, если скомпилировать с параметром "-nochk a" (отключить рантайм проверки). Позже, я так и сделаю, просто пока я не совсем уверен в надежности работы программы. По умолчанию, компилятор oberon-07 вставляет отладочный машинный код (проверка указателей, индексов массивов и т. д.). Если при выполнении программы произойдет разыменование нулевого указателя или нарушение границ массива, то программа выведет на доску отладки сообщение о месте и типе ошибки после чего будет остановлена. Это сильно помогает при разработке, особенно для Колибри, где чтение/запись по нулевому адресу допустимы.
Вот сравнение размеров сжатых и несжатых бинарников для "больших" программ на c-- (webview, eolite) и oberon-07 (fb2read, cedit):
Как видно, машинный код, который генерит компилятор Оберона заметно хуже сжимается (хотя несжатый код довольно компактный). Возможно, код отличается бОльшим разнообразием, компилятор может выдать разный машинный код для одинаковых выражений в зависимости от контекста. При разработке компилятора, я стремился сделать так, чтобы компилятор производил как можно меньший по размеру код без ущерба для эффективности. Разумеется, я рассматривал только несжатый код. Для минимизации размера сжатого бинарника, вероятно, надо генерить больше одинаковых фрагментов кода пусть и бОльшего размера.
Можно уменьшить размер сжатого бинарника на ~17%, если скомпилировать с параметром "-nochk a" (отключить рантайм проверки). Позже, я так и сделаю, просто пока я не совсем уверен в надежности работы программы. По умолчанию, компилятор oberon-07 вставляет отладочный машинный код (проверка указателей, индексов массивов и т. д.). Если при выполнении программы произойдет разыменование нулевого указателя или нарушение границ массива, то программа выведет на доску отладки сообщение о месте и типе ошибки после чего будет остановлена. Это сильно помогает при разработке, особенно для Колибри, где чтение/запись по нулевому адресу допустимы.
Вот сравнение размеров сжатых и несжатых бинарников для "больших" программ на c-- (webview, eolite) и oberon-07 (fb2read, cedit):
Code: Select all
сжатый не сжатый %
webview 21720 83862 25.9
eolite 31002 132800 23.3
fb2read* 24711 73820 33.5
cedit 35152 116796 30.1
cedit* 29858 90172 33.1
* без рантайм проверок
На самом деле это не критично. Спасибо что ответили на вопрос.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Можно в редакторе внутри включить компиляторы для всех работающих языков чтобы процесс компиляции исходных текстов занимал меньше времени не прибегая к поиске отдельных компиляторов. Можно это применить?
denius
Сейчас, чтобы скомпилировать или запустить программу из редактора, нужно написать скрипт, сохранить его и выбрать файл скрипта в меню "program". Если пишется большая программа, то трудозатраты на написание скрипта несопоставимы с таковыми на написание программы. Но это, конечно, неудобно, когда пишется маленькая тестовая программа. Но каким образом я могу это автоматизировать? Для того, чтобы скомпилировать программу, редактор должен знать на каком языке она написана, тогда будет понятно, какой компилятор использовать. В редакторе могут быть открыты несколько файлов на разных языках программирования, и какой из них относится к программе, знает только пользователь. Также, необходимо знать, какой из файлов программы является главным, т. е. с какого начинается компиляция. А кроме того, надо указать еще и имя выходного файла (но здесь проще -- по умолчанию, можно записывать результат в /tmp0/1). А еще есть параметры компилятора, которые тоже надо где-то указывать.
В IDE все эти данные могут быть записаны в специальный файл проекта (при создании нового проекта или при редактировании свойств текущего). Но у меня не IDE, а просто текстовый редактор.
Впрочем, если будут конкретные предложения что и как надо сделать для повышения удобства работы, то я их, конечно, рассмотрю.
Сейчас, чтобы скомпилировать или запустить программу из редактора, нужно написать скрипт, сохранить его и выбрать файл скрипта в меню "program". Если пишется большая программа, то трудозатраты на написание скрипта несопоставимы с таковыми на написание программы. Но это, конечно, неудобно, когда пишется маленькая тестовая программа. Но каким образом я могу это автоматизировать? Для того, чтобы скомпилировать программу, редактор должен знать на каком языке она написана, тогда будет понятно, какой компилятор использовать. В редакторе могут быть открыты несколько файлов на разных языках программирования, и какой из них относится к программе, знает только пользователь. Также, необходимо знать, какой из файлов программы является главным, т. е. с какого начинается компиляция. А кроме того, надо указать еще и имя выходного файла (но здесь проще -- по умолчанию, можно записывать результат в /tmp0/1). А еще есть параметры компилятора, которые тоже надо где-то указывать.
В IDE все эти данные могут быть записаны в специальный файл проекта (при создании нового проекта или при редактировании свойств текущего). Но у меня не IDE, а просто текстовый редактор.
Впрочем, если будут конкретные предложения что и как надо сделать для повышения удобства работы, то я их, конечно, рассмотрю.
Как и обещал, я исправил ВСЕ скины, так что теперь проблем с light и dark цветами быть не должно.
Если будут, пишите.
Если будут, пишите.
Из хаоса в космос
Горизонтальный скролл не работает.
Из хаоса в космос
Я такого не замечал, у меня всё работает. Может быть, нужны какие-то особые условия для воспроизведения бага. В общем, если замечу, то исправлю, а пока я ничего не вижу.Leency wrote:Горизонтальный скролл не работает.
Не работал в эмуле. Видно ошибка эмулирования. Сори.akron1 wrote:Я такого не замечал, у меня всё работает. Может быть, нужны какие-то особые условия для воспроизведения бага. В общем, если замечу, то исправлю, а пока я ничего не вижу.Leency wrote:Горизонтальный скролл не работает.
Из хаоса в космос
Можно ещё пожалуйста добавить хоткей CTRL+H? Делает то же самое что CTRL+F.
(в других редакторах +F это поиск, а +H это замена).
Изменение кодировки не делает доступным сохранение (т.е. не является "шагом"), нужно нажать например Пробел чтобы можно было сохранить документ.
Также Encoding определяет кодировку сохранения, но нет функции преобразования текущей кодировки.
В notepad++ это сделано так.
(в других редакторах +F это поиск, а +H это замена).
Изменение кодировки не делает доступным сохранение (т.е. не является "шагом"), нужно нажать например Пробел чтобы можно было сохранить документ.
Также Encoding определяет кодировку сохранения, но нет функции преобразования текущей кодировки.
В notepad++ это сделано так.
- Attachments
-
-
Screenshot_1.png (12.06 KiB)Viewed 4855 times
-
Из хаоса в космос
Aх да, ещё хотелось бы:
Chrl+влево или вправо переход к началу/концу слова.
Хотелось бы Tab в строке поиска для перехода к следующему текстовому полю.
Chrl+влево или вправо переход к началу/концу слова.
Хотелось бы Tab в строке поиска для перехода к следующему текстовому полю.
Из хаоса в космос
Сделано.Leency wrote:Можно ещё пожалуйста добавить хоткей CTRL+H? Делает то же самое что CTRL+F.
(в других редакторах +F это поиск, а +H это замена).
Теперь, изменение кодировки считается изменением текста и файл можно сразу же сохранить, а можно и отменить изменение кодировки.Leency wrote: Изменение кодировки не делает доступным сохранение (т.е. не является "шагом"), нужно нажать например Пробел чтобы можно было сохранить документ.
Это имеет смысл только в случае неправильного автоопределения кодировки. В нормальных текстах это практически исключено. Изменение текущей кодировки при такой структуре данных сделать сложно, а пользы от этого мало. Пока я это не планирую.Leency wrote: Также Encoding определяет кодировку сохранения, но нет функции преобразования текущей кодировки.
Пока сделано в таком виде: Ctrl+left/right -- переход к началу предыдущего/следующего слова. Словом считается последовательность символов {'A'..'Z', 'a'..'z', '0'..'9', '_'}. В дальнейшем, это можно усовершенствовать.Leency wrote:Chrl+влево или вправо переход к началу/концу слова.
Сделано. Хотя, чекбоксы и кнопки всё равно придется нажимать мышью.Leency wrote:Хотелось бы Tab в строке поиска для перехода к следующему текстовому полю.
Last edited by akron1 on Fri Nov 26, 2021 10:31 pm, edited 1 time in total.
Ctrl+Влево/Вправо не работает с кириллицей (я когда-то репортил, по помню повод был другой, тут это странно).
Ctrl+Влево работает корректно
Ctrl+Вправо нет, перескакивает за пробел. Пример:
Ctrl+Влево работает корректно
Ctrl+Вправо нет, перескакивает за пробел. Пример:
Code: Select all
Steps to reproduce:
1. |Hello world
2. [Ctrl+Right]
Actual result: Hello |world
Expected result: Hello| world
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 0 guests