Перейти к содержимому


Фотография

JuffEd 0.2 Beta 1


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 45

#1 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 28 March 2008 - 08:41

JuffEd --- текстовый редактор на Qt4, который я начал писать спонтанно и почти случайно, но так получилось, что продолжаю, когда накатывает вдохновение или когда более нечем заняться.
Предвидя возможные "а чем он лучше <подставить нужное>", отвечаю: возможно, ничем (кроме того, что не обременён излишними зависимостями типа KDE, GNOME, Java и пр.). Пока. Делается исключительно for fun, но кое-что уже умеет и вроде даже неплохо.

Что есть:
* интерфейс в виде табов
* подсветка синтаксиса для C/C++, Makefiles, Python, HTML, PHP, XML
* "маркеры" для строк
* поиск/замена по регулярным выражениям
* выбор кодировки файла (с возможностью ограничить список, указав только те, которые часто используются)
* автосохранение с выбранным интервалом
* отслеживание изменения файлов внешней программой
* возможность использовать единственный экземпляр программы
* поддержка "сеансов"
* настраиваемый внешний вид
* много разных мелочей....

Что планируется в следующей версии:
* использование QScintilla в качестве компонента для редактирования текста (как следствие --- много всего вкусного типа "сворачивания" блоков кода, более умного авто-отступа и много всего прочего)
* система плагинов и скриптов

Что нужно:
* тестирование smile.gif

По моим наблюдения программа довольно стабильна (я не помню, когда последний раз огребал segfault smile.gif) Но хочется постороннего взгляда, чтобы уже поскорее закрыть ветку 0.2 и вплотную заняться следующей. Фичреквесты и багрепорты приветствуются.

Взять можно тут: http://qt-apps.org/c...p?content=59940
Есть пакеты для Deban Etch/Lenny, есть rpm для Mandriva 2008, есть PKGBUILD для Arch, есть ебилд для Gentoo. Пакет для Lenny собирался с Qt 4.3.4, в принципе должен подойти к Убунте (какая там у неё версия?). Сорцы, естественно, тоже есть smile.gif

Сообщение отредактировал Михалыч: 28 March 2008 - 21:30


#2 legioner

legioner

    Местный

  • Жители
  • PipPip
  • 681 сообщений

Отправлено 28 March 2008 - 23:09

KDE, Gnome, Java - нет, зато есть QT4 suicide2.gif

P.S. правильные люди используют бабочек

#3 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 28 March 2008 - 23:42

KDE, Gnome, Java - нет, зато есть QT4 suicide2.gif


Ну это уже религиозные заморочки smile.gif (хотя какие они могут быть в случае труЪ-GPL тулкита --- решительно не понимаю)
Как по мне --- так не тяжёлый, быстрый и удобный для разработчика кроссплатформенный фреймворк.
Но разговор немного не об этом wink.gif

Цитата(legioner @ Mar 29 2008, 0:09) <{POST_SNAPBACK}>
P.S. правильные люди используют бабочек


Сорри за неосведомлённость: а что это такое --- "бабочки"? huh.gif

#4 legioner

legioner

    Местный

  • Жители
  • PipPip
  • 681 сообщений

Отправлено 29 March 2008 - 11:51

Меня смущает размер qt4, никакой религии.
Сорри за неосведомлённость: а что это такое --- "бабочки"? huh.gif

http://community.liv...xkcd/30572.html
оригинал: http://xkcd.com/378/

#5 s1im

s1im

    Пришедший

  • Жители HomeNet
  • 89 сообщений

Отправлено 01 April 2008 - 12:19

а не предполагается функция автодобполнение кода?smile.gif

Сообщение отредактировал s1im: 01 April 2008 - 12:19


#6 Spirit

Spirit

    Пришедший

  • Жители HomeNet
  • 91 сообщений

Отправлено 01 April 2008 - 22:45

о да... я тоже за автодополнение.. ) хотя думаю это сложно, ибо надо учитывать специфику языка, который собираешься дополнять...
лично я хочу автодополнение и проверку синтаксиса на лету для питона... т.е. функционал(eclipse + pydev) =< функционал(Juffed) // а то у меня машинка слабая для еклипсы.. smile.gif юзается с тормозами...

#7 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 03 April 2008 - 10:24

Ну вообще в будущем предполагается, т.к. QScintilla имеет для этого встроенные средства, но попозже, как только я найду время с ним разобраться smile.gif
Переход на ветку 0.3 (а с ним и на QScintilla) будет осуществлён сразу после стабилизации 0.2, а для этого нужны багрепорты. Ну не верю я, что нет багов smile.gif

#8 s1im

s1im

    Пришедший

  • Жители HomeNet
  • 89 сообщений

Отправлено 03 April 2008 - 17:27

хм.
чес слово неможу я тестить без удобных средств:) пусть лучше будет не стабильная, но со всеми вкусностями smile.gif
иногда открываю в нем файло, читаю. не пишу. прога не вылетает smile.gif
ЗЫ: работаю на кубунте 7-10 и 8-04.

Сообщение отредактировал s1im: 03 April 2008 - 17:34


#9 Spirit

Spirit

    Пришедший

  • Жители HomeNet
  • 91 сообщений

Отправлено 03 April 2008 - 17:51

1) подсветка синтаксиса определяется по расширению файла?,. а можно сделать, что бы вручную можно было выбирать?.
2) указание кодировки по умолчанию... вроде локаль используется, и неплохо было бы отметить крестиком это в Вид-Кодировка
3) configure не ожидается? smile.gif что бы выбирал правильное qt и prefix. smile.gif... // хотя в Makefile все красиво расположено )

но это больше косметические правки)

Сообщение отредактировал Spirit: 03 April 2008 - 17:52


#10 Ilw

Ilw

    Местный

  • Жители HomeNet
  • PipPip
  • 594 сообщений

Отправлено 03 April 2008 - 20:50

Ну вообще в будущем предполагается, т.к. QScintilla имеет для этого встроенные средства, но попозже, как только я найду время с ним разобраться smile.gif
Переход на ветку 0.3 (а с ним и на QScintilla) будет осуществлён сразу после стабилизации 0.2, а для этого нужны багрепорты. Ну не верю я, что нет багов smile.gif

Да пожалуйста smile.gif
Настройки не сохраняются. Правда я не нашел где они должны храниться, может поэтому (хотя сеансы сохраняются)?
Не понял что делает "Подгонять текст по ширине" в настройках редактора.
"Показывать номера строк" работает только для новых вкладок.
Два последних вроде есть в меню "Вид". Нужны ли они дополнительно в настройках? Хотя они так же не сохраняются к следующему запуску. Но зато "Подгонять по ширине" работает. smile.gif
На F3 не влияет в каком направлении осуществлялся поиск, вызванный по Ctrl+F (ну это спорный момент, баг ли это)

Зачем то файлы
/usr/share/applications/juffed.desktop
/usr/share/juffed/hlschemes/*
/usr/share/juffed/l10n/*
/usr/share/pixmaps/juffed.png
исполняемые.
Использовалась сборка для Debian Lenny. Система - Debian Sid

Хватит? smile.gif

Сообщение отредактировал Ilw: 03 April 2008 - 20:53


#11 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 03 April 2008 - 21:53

1) подсветка синтаксиса определяется по расширению файла?,. а можно сделать, что бы вручную можно было выбирать?.


Будет в 0.3.

2) указание кодировки по умолчанию... вроде локаль используется, и неплохо было бы отметить крестиком это в Вид-Кодировка


Да, по умолчанию используется кодировка локали. Но Qt не отдаёт кодировку локали по имени, она отдаёт как раз так: System (в статусбаре так и отображается). Поковыряю, что можно сделать в этом направлении.

Цитата(Spirit @ Apr 3 2008, 17:51) <{POST_SNAPBACK}>
3) configure не ожидается? smile.gif что бы выбирал правильное qt и prefix. smile.gif... // хотя в Makefile все красиво расположено )


Надо, надо.... но я пока сам ни разу не сталкивался, надо бы покурить это дело smile.gif

#12 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 03 April 2008 - 22:03

Настройки не сохраняются. Правда я не нашел где они должны храниться, может поэтому (хотя сеансы сохраняются)?


Хм, с этого места поподробнее....
Т.е. ты сменил какие-то настройки, потом завершил программу штатным образом, а при последующем запуске настройки опять дефолтные?
Попробуй в консоли запускать, он случайно в сегфолт не падает до того, как сохранит настройки? smile.gif
Мне уже отрепортили об одном таком падении (под Виндой). Причём падает с Qt 4.3.4, а с более ранней (пробовал 4.2.3) --- не падает.

Да, настройки хранятся в ~/.config/juff/juffed.conf

Update:
Разобрался, в чём была причина падения. Qt некорректно отрабатывала момент достижения итератором конца списка. Соответственно, выход за его пределы и попытка использования несуществующего объекта. Послать им баг-репорт, что ли....
Подозреваю, тут у тебя как раз тот же случай. А то, что сессия сохраняется --- не удивительно: она сохраняется непосредственно перед тем, как начинается закрытие документов smile.gif


Не понял что делает "Подгонять текст по ширине" в настройках редактора.
"Показывать номера строк" работает только для новых вкладок.


Эти 2 пункта задают дефолтное значение для этих опций. Т.е. как раз указывают, как открывать новые вкладки: с номерами или без, подгонять текст по ширине или нет. Для уже открытых документов это можно включать/отключать индивидуально.

Цитата(Ilw @ Apr 3 2008, 20:50) <{POST_SNAPBACK}>
Два последних вроде есть в меню "Вид". Нужны ли они дополнительно в настройках?


Как уже сказал, то, что в меню "Вид" --- для текущего документа, то, что в настройках --- дефолтное значение для вновь открываемых файлов.

Цитата(Ilw @ Apr 3 2008, 20:50) <{POST_SNAPBACK}>
На F3 не влияет в каком направлении осуществлялся поиск, вызванный по Ctrl+F (ну это спорный момент, баг ли это)


Да, во избежание путаницы, F3 --- всегда "вперёд", Shift+F3 --- всегда "назад".

Сообщение отредактировал Михалыч: 03 April 2008 - 23:24


#13 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 04 April 2008 - 08:58

Бета 3:

* пофиксил падения
* убрал лишние права на исполнение у файлов smile.gif
* так, по мелочи....

#14 Assuri

Assuri

    Use Jabber!

  • Жители
  • PipPipPipPipPip
  • 3,799 сообщений

Отправлено 04 April 2008 - 18:41

Предложения:
1) Добавить возможность показывать список всех файлов в виджете QListWidget(мой проект состоит из многих файлов и все они мне нужны открыты. С вкладками не удобно, ведь искать в какой стороне находится нужная вкладка занимает время.
2) Лучше всего по дефолту иметь одну тему значковости(:-), то сделать виджет загрузки тем для значков.
3) Раздражает то, что горизонтально может текст броузер прокручиваться, но я так понял, что для этого существует индикатор

Баги:
1) У меня "открывать в существующем приложении" не работает sad.gif Кстати! Как Вы это реализовали? Это может избавить от использовать блок файлов?
2) Синтаксис питон не правильно подсвечивается - скриншот прилагается: Прикрепленный файл  syntak_hightlighting.jpg   162.79К   28 скачиваний

Пока вот так smile.gif

P.S. Если пункты 3 и 1 будут реализованы выброшу Kate smile.gif
Update: с 3-им пунктом все понятно - я тупанул smile.gif Остался 1.

Сообщение отредактировал -DooM-: 04 April 2008 - 18:49


#15 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 04 April 2008 - 19:13

1) Добавить возможность показывать список всех файлов в виджете QListWidget(мой проект состоит из многих файлов и все они мне нужны открыты.


Будет в 0.3 (в виде плагина)

2) Лучше всего по дефолту иметь одну тему значковости(:-)


Уже думал над этим, да. Надо бы сделать отдельный пакет juffed-icons.

1) У меня "открывать в существующем приложении" не работает sad.gif


После установки этой опции требуется перезапуск.

Цитата(-DooM- @ Apr 4 2008, 18:41) <{POST_SNAPBACK}>
Кстати! Как Вы это реализовали?


IPC Sockets, они же Unix Domain Sockets. Смотри код, там немного и довольно просто.

Цитата(-DooM- @ Apr 4 2008, 18:41) <{POST_SNAPBACK}>
2) Синтаксис питон не правильно подсвечивается


А вот это уже интереснее.... Отправь файл на почту? Хотя.... мой хайлайтер доживает последние дни, потом будет использоваться QScintilla, так что наверно жди следующей версии closedeyes.gif

Сообщение отредактировал Михалыч: 04 April 2008 - 19:15


#16 Assuri

Assuri

    Use Jabber!

  • Жители
  • PipPipPipPipPip
  • 3,799 сообщений

Отправлено 04 April 2008 - 19:39

Уже думал над этим, да. Надо бы сделать отдельный пакет juffed-icons.

Хорошая идея wink.gif

IPC Sockets, они же Unix Domain Sockets. Смотри код, там немного и довольно просто.

А это в каком файле? У Вас там их куча..

А вот это уже интереснее.... Отправь файл на почту? Хотя.... мой хайлайтер доживает последние дни, потом будет использоваться QScintilla, так что наверно жди следующей версии closedeyes.gif

Ну тогда жду smile.gif

#17 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 04 April 2008 - 20:36

А это в каком файле? У Вас там их куча..


Смотри начиная с main.cpp: line 83 smile.gif
Он приведёт тебя куда надо: в SingleInstance.cpp, DocHandler.cpp и (как следствие) SocketListener.cpp

#18 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 05 April 2008 - 10:45

Хех, всё-таки был баг с открытием в уже запущеном экземпляре, если запускать из консоли и давать ему файл с относительным путём.
И с подсветкой блоков разобрался (была небольшая регрессия).
Кстати, завёл наконец-то SVN, исправленную версию можно забрать там: https://juffed.svn.s...ot/juffed/trunk

#19 Assuri

Assuri

    Use Jabber!

  • Жители
  • PipPipPipPipPip
  • 3,799 сообщений

Отправлено 05 April 2008 - 11:40

Правильно сделали, что завели SVN - хорошая вещь. Жду версию с плагином ListWidget.

Кстати, как Вы хотите реализовывать систему плагинов? Использование API?

#20 Михалыч

Михалыч

    лицо сибирской национальности

  • Жители HomeNet
  • PipPipPipPipPip
  • 3,403 сообщений

Отправлено 06 April 2008 - 07:00

Кстати, как Вы хотите реализовывать систему плагинов? Использование API?


Стандартный Qt-шный механизм плагинов (см. документацию в районе QPluginLoader).

Плагины наследуют определённый интерфейс и рулятся неким менеджером, который грузит их при старте, а в процессе работы уведомляет их о том или ином событии (файл открыли, файл закрыли, переключили таб и т.д.). Также они могут коннектить свои сигналы к public слотам document handler-а (тоже заранее известное API).




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных