Softomato - mini IDE для ноутбука

Вот еще одна mini-ide Softomato. Оптимизирована для экранов ноутбуков. Для кодинга на С и С++. Пока бетка. Это первая публикация про нее. Среда основана на видении оптимального редактора кода :) Взял все лучшее из многих редакторов и написал с нуля за новогодние праздники 2015 г., так как ждать любимых фич в других редакторах оказалось ну очень долго.

Softomato настолько мелкая и быстрая, что ее проще поставить и самому посмотреть, чем скрины делать. А по скрину тоже много не скажешь. Максимум места под код не в ущерб навигации. Девиз проги — чтобы добавить одну нужную фичу надо удалить из нее две ненужных. Большинство команд через горячие клавиши. Вот краткий список того, что умеет на сегодня:



Навигация по функциям, переменным с многословным фильтром поиска
Поиск слова в проекте по дабл-клику
Быстрое переключение между проектами
Автодополнение (поддерживает несколько фрагментов искомой функции или переменной в любой последовательности)
Шаблоны кода
Синхронизация фрагментов кода в разных проектах
Анализ вызовов функций
Закладки в виде комментариев (не сползают при добавлении кода, сохраняются в проекте)
Закладки в виде привязок к номерам строк (полная противоположность предыдущим, но не портят проект)
Навигация по закладкам, файлам, функциям и всему, что можно навигировать :)
Вход и выход из функции при установке курсора на названии функции
Блокнот для быстрых заметок, привязанный к проекту
Форматирование кода
Быстрое переключение между h и с файлами по F11
Экспорт импорт натроек редактора и цветовой схемы в файл

В нормальном режиме правое окошко и окно поиска закрываются при скроллинге текста, освобождая место под код:


может еще что-то забыл, фичи постепенно добавляю по мере надобности. Написана на CodeTyphon. На базе SynEdit. Кросплатформенность пока не прикручивал. Тулбара с кнопками нет и не будет. Ибо жрет экран нещадно и уныло.

Ну и название Softomato — от софта и техники программирования при помощи кухонного таймера в виде помидора (подробнее на хабре) — 25 минут кода, 5 минут перерыв. Так что время на проект можно измерять в помидорах, а прогу называть кетчупом или помидоркой :)
Все версии Softomato лежат тут: yadi.sk/d/GbPB4rsxeXQ2z

Отчет за 2016 год. За 2016 в Softomato появилось много интересного. Из основных плюшек — прикручен компилятор AvrGСС (бесплатный компилятор для AVR90), CppCheck (бесплатный поиск ошибок в коде). Потенциально можно прикрутить все что угодно через правку текстовых epm файлов (ExternalPrograM). Запуск внешних программ (компиляторы, гляделки, калькуляторы, программаторы и пр.) осуществляется по имени: нажал Ctrl+E, написал пару букв нужной программы (оконная или консольная — без разницы), нажал Enter и все запустилось. Наконец прикрутил вложенные папки. Полезно для программирования под STM32. И добавил кеширование разбора кода. Softomato и так летает, но теперь приблизился к 1 космической скорости. Кстати GCC для STM32 еще не прикручивал, но в теории должно работать. Принцип тот же, что и для AvrGСС — свой epm файл. Еще появился мультибуфер, эта полезная шняга нужна для одновременной работы с несколькими переменными. Переработано контекстное меню, теперь на мелком ноуте все влезает в экран. Ну и исправлены мелкие ошибки и добавлены новые (шутка). Все это более подробно описано в файле Versions.txt. Своим новогодним 815 билдом Softomato поздравляю всех пограммеров с НГ! Ну и по секрету скажу, что еще не все прикрутил, что хотел :)
  • +9
  • 23 марта 2015, 18:44
  • Legogo

Комментарии (74)

RSS свернуть / развернуть
Без тулбара и меню выглядит оно весьма… необычно. И я как-то привык к тулбарам. Можно же сделать их отключаемыми.
0
  • avatar
  • Vga
  • 23 марта 2015, 18:57
А ведь я еще хотел грохнуть верхнюю синюю полоску, но не нашел, куда выводить имена проектов и файлов. Поэтому она осталась. Но, наверное, ненадолго :)
В самых первых версиях было и то и это. Потом отказался за ненадобностью. Наверное сказалась генетическая нелюбовь к ленточному интерфейсу от Microsoft, когда и без того узкий экран ноута захламлялся горизонтальной лентой, создавая амбразуру для ввода текста. Ведь можно было разместить ее слева, а ведь не сделали такого. Доводилось встречать редакторы с туевой кучей кнопок. Да, выглядят солидно, и каждая кнопка дай бог нажимается два раза в году. Здесь же хотелось сделать нечто «поставил и поехал». Чтобы можно начать работу через минуту после установки и не отвлекать внимание на фасад.
+1
Я тулбаром пользуюсь постоянно, и вообще, в IDE прежде всего смотрю на конфигурируемость интерфейса. У тебя она, похоже, нулевая. А хотелось бы
1) Тулбары — полностью настраиваемые
2) Докирование окон (сейчас, как я понимаю, жестко фиксированная раскладка)
3) Вкладки у редактора

И немного по другим функциям.
Форматирование кода — не хватает настроек. И возможности его отменить. Случайно нажал кнопку и все съехало.
Архивация проектов — я бы на этом месте предпочел видеть интеграцию с VCS. А также — возможность эту архивацию отключить нафиг, чтобы случайно не запустить.
Хотя оно и называется IDE, интеграции с чем-либо я не нашел. Чисто редактор. Правда, похоже, довольно неплохой редактор.
Неплохо бы указывать не расширения входящих в проект файлов, а маски. В текущем варианте нельзя добавить пункт «Makefile».
Хотелось бы более развернутые настройки стилей — благо, SynEdit это позволяет. Как минимум, возможность выбрать стандартные B/I/U.
Желательно возможность подключения тулзов. Скажем, для того, чтобы добавить вызывающую make кнопочку.
Желательно добавить возможность указать IDE пути к стандартным инклюдам компилятора — чтобы и по ним навигация работала.

Немного странновато окошко «проекты». Зачем использовать редактор в качестве списка, если редактировать все равно нельзя? И я так и не нашел, как переименовать проект и как управлять входящими в него файлами (впрочем, с последним, кажется, ясно — добавлением-удалением файлов в папку проекта).
0
Ок, записал. Переименовать проекты можно в настройках: Проекты — кнопка «разрешить редактирование». По поводу файлов долго думал, добавлять по одному или сразу папку. Остановился на последнем, так как такой вариант предполагает наименьшее количество бардака в проекте. Поддержку сторонник папок и вложенности папок прикручу позднее.
0
Покуда оно не связано с тулчейном и дебаггером — такой подход допустим, но как только структура проекта в IDE начинает транслироваться в процесс сборки — как тут же становятся необходимыми средства полноценного управления ей.

И это, все же, прежде чем делать среду непохожей на «классический интерфейс» — подумай над тем, чтобы делать это опциональным… Все же, классический интерфейс не зря именно таким устоялся.
Переименовать проекты можно в настройках: Проекты — кнопка «разрешить редактирование».
ИМХО, это смешивание котлет с мухами. В настройках должно быть относящееся только к IDE, а проекты — сами по себе в менеджере проектов.
0
И еще — очень непривычно поведение среды в плане открытия проектов. Чего стоит выдаваемое при первом запуске окошко «неправильный путь проекта») Хотелось бы возможность более классического подхода — открыть проект, закрыть проект, добавить проект, убрать проект…
0
Крайне непривычно и то, что среда сама сохраняет файлы. Я бы все же предпочел кнопочку Save — хотя бы для того, чтобы не сохранять случайно запоротый (тем же автоформатированием) файл.
0
Ведь можно было разместить ее слева, а ведь не сделали такого.
тебе сколько лет? ^_^ неужто не в курсе что травка раньше была позабористее мониторы раньше были 4:3
0
кстати мелкомягкий офис еще в те времена умел панели вертикально ставить. да и винда панель вдоль боковой кромки ставить умеет.
0
Ну да, ленточный интерфейс придумали в 1997 году. Буквы читаем внимательно, не проглатываем.
0
Есть простой и очень эффективный способ решить эту проблему. Делаете максимально возможный тулбар со всеми кнопками хоть в 10 рядов на 3/4 экрана. Но появляется этот тулбар по нажатию хоткея и пропадает при его отпускании. В качестве хоткея очень подходит левая часть функциональных кнопок F1..F4
0
Что за подробности на хабре? Ссылочлку можно?
0
  • avatar
  • xar
  • 23 марта 2015, 19:06
0
А зачем в настройках дублировать табы списком (или список табами)? К тому же, табы внизу на некоторых темах оформления отображаются неадекватно.
0
  • avatar
  • Vga
  • 23 марта 2015, 19:07
ОК, отключю в следующих ветках.
0
А табы так и остались. В XP со стандартной темой они по прежнему смотрятся неадекватно)
0
Отключил в следующей версии.
0
Отлично. Мне список фич нравится. Выглядит аккуратно и продумано.
0
Не, конечно прикольно, но уже давно прошли времена ноутов с маленькими экранами и\или маленьким разрешением.
0
У мя друг юзает нетбук 1024x600 для работы.
0
Я работаю с нетбуком с 1024х600. Вот только хотелось бы добавить «пожирателей пространства» на FHD монике десктопа)
0
c 720p тоже не сильно лучше дела обстоят
0
Есть ли смысл писать целиком свой продукт вместо того, чтобы улучшить настройки/интеграцию уже существующих, в т.ч. опенсорсных редакторов или IDE?

Ну вот какие фичи тут есть, которых нет или не добавить самостоятельно в тот же Vim или Sublime? И будет ли в этом продукте поддержка perl/python/javascript/java?

Интерфейс тоже как-то про минимализм не говорит, возможно неудачные скриншоты…

p.s. Не примите за желание непременно обругать новое, но порой просто становится жалко усилий, которые тратятся чтобы «написать свой собственный класс String»…
0
  • avatar
  • dvg
  • 23 марта 2015, 22:46
Хочешь, чтобы было хорошо — сделай сам. Мне жалко усилий когда пытаются доработать барахло.
0
Наверное, это что-то из серии «Каждый программист должен написать текстовый редактор...»
+1
А какие ты средства использовал для задач кодонавигации и иже с ней (дополнение, подсказки, etc)?
0
Разбор кода писал посимвольно руками. Дня 2 ушло. Все остальное штатные средства CodeTyphon. Сейчас htpekmnfns кодонавигации кешируются, но не читаются при старте. Когда прикручу чтение, тогда проекты из 10000 файлов и из 1 файла будут открываться мгновенно. А то сейчас приходится ждать по 500 мс при переключении между мелкими проектами :)
0
Неплохо. Я, все же, еще раз попрошу подумать над переносом разработки в опенсорс.
0
ОК, когда допишу все фичи наверно так и поступлю. А то выкладывать полуфабрикат как-то стыдно что-ли.
0
Я бы предложил закатить код в репозиторий (например, на том же гитхабе) и прямо там и пилить все эти фичи. В некотором роде, он для полуфабрикатов и предназначен.
0
Чего только не сделают люди, лишь бы emacs не учить!..
+4
плюсанул как шутку, но нахрен эти ваши емаксы и подобное… 21 век на дворе
+1
У меня одного вылетает от такой последовательности:
1) запуск, жмем ОК на рамке с ошибкой
2) в открывшемся дереве жмем ОТМЕНА (кстати оно позади всех открытых окон)
3) набиваем немного абракадабры в редакторе
4) жмем крест в правом верхнем углу (пытаемся закрыть)
5) в появившейся рамке жмем Отмена
6) Fail
???
0
Такие дела:
+1
В папку с версиями закинул архив из нескольких библиотек. Положите любую в корень с программой.
0
Softomato еще не научился создавать проекты. Покажите ему готовый.
0
Покажите ему готовый.
Где взять готовый проект? Или Softomato понимает чужие проекты?
0
Просто папочка с файлами. Рекомендую для экспериментов отдельную копию проекта создать, иначе автосохранение может неприятно удивить.
0
Просто папочка с файлами
Не получается — файлы проекта лежат в наскольких папках, указываю корневой каталог. Файлов не видит.
0
Должен видеть файлы, что в корне. Поддержка вложенных папок и внешних в планах.
0
Понял, спасибо.
0
Пытаюсь создать тестовый проект, но не выходит. Создал папку. Туда скопировал некоторые исходники. Открыл ИДЕ. Указал созданную папку. Проект отображается, а файлы нет. Как добавить новые файлы в проект?
0
Делаете все верно. Проверьте, что версия программки последняя список расширений в настройках таков: *.c,*.cpp,*.h,*.hpp,*.txt,*make*
Русские буквы в пути к папке есть?
0
в полной мере не попользовался продуктом, так как на Win7x64 подглючивает, но задумка интересная.
не планируете кроссплатформенность? раскраску делать не будете? я лично привык чтобы фон был чёрным, поэтому все редакторы с отличным дизайном вызывают физиологическое отторжение
0
Как подглючивает? На двух разных ноутах Win7x64 полет нормальный. Настройки цветовой схемы нашли? Не найти их невозможно. Цветовые темы светлая, серая и черная лежат в папке System программы.
0
первые ошибки — программа по старту сказала указать ей путь к проекту, а так как такового пока что в ней не создано сделал отмену, потому мне показали пустое окно с вкладками, как в статье, только без содержимого, куда то на пустой форме ткнул и получил ошибку

после чего программа вылетела, затем начал искать изменение цветовой гаммы, таки нашёл, было бы здорово чтобы настройки находились более интуитивно, но думаю не критично, так вот после изменения фона на любимый чёрный за окном настройки я увидел что фон изменился, но закрыв настройки получил ошибку

время экспериментов закончилось и я вернулся к любимому geany искренне желаю развить проект с блэкджеком и плагинами :)) так что насчёт кроссплатформенности? есть планы?
0
Скрин 1: Повторюсь, редактор не умеет создавать проекты. Откройте папку с готовым. Скрин 2: Из-под админа запускать не пробовали? Поставил на посмотреть Geany. По умолчанию как редактор не впечатлил. Но получше чем CodeBlocks наверное будет. Насколько понял он расширяется плагинами (коих насчитал немного). Может поделитесь инфой, что в нем такого, чем он Вас покорил и чего еще нету в Softomato? :) Кросплатформенность планируется, но не скоро.
0
если коротко, то самым большим плюсом geany это кроссплатформенность, ибо обычно работаю в линуксе, а так да, сабж — хорошее начинание
0
всем привет!
Для меня лично сие творение весьма актуально!
Но как всегда интересует кроссплатформенность!
Будет ли версия для nix или мака?
а так же что на счет отолачика и просмотра регитров- ибо это есть самое главное при работе с стм для которых нет либ для протеуса
И нужен все же мастер создавать проекты! Я например не совсем понимаю что мне туда надо напихать — где указать компиллер и та кдалее или это не ИДЕ а просто редактор? И если это просто редактор можно ли его в таком случае качественно прикрутить к иару?
0
а так же что на счет отолачика и просмотра регитров- ибо это есть самое главное при работе с стм для которых нет либ для протеуса
Гениальная фраза =) Беги парень, граммар-наци не дремлют.
+1
Да-да, мы, граммар-наци, такие, мы не дремлем. Хрен с ним, с регионально-профессиональным жоргоном. Но, my ass, ЗАПЯТЫЕ-ТО ТЫ ГДЕ ПОТЕРЯЛ?! Ты время, что ли, на них экономишь? )))
0
Пока редактор. А для STM чем кокос не устраивает? Кросплатформенность в планах.
0
Всем привет!
Для меня — сие творение весьма актуально!
Но как всегда интересует кроссплатформенность!
Будет ли версия для *.nix или мака?
Что на счет отладчика и просмотра регистров? Данный функционал — есть самое главное при работе с STM32, для которых нет библиотек под протеус?
И нужен все же мастер создавать проэкты! Я например не совсем понимаю что мне туда надо напихать — где указать компиллер и так далее… Или стоит рассматривать данный продукт всего лишь как редактор кода а не ИДЕ? И если это просто редактор можно ли его в таком случае качественно прикрутить к IAR?

Очень надеюсь что в таким виде задроты смогут прочитать текст и возможно понять что я хотел спросить…
0
На часть вопросов ответы есть выше.
Кроссплатформенность теоретически возможна — написано на лазарусе, а он кроссплатформенный.
На сейчас — чисто редактор, про то, планируется ли привязка к тулчейну и отладчику автор ничего не сказал.
На месте автора я бы уже выложил на гитхаб и предложил заняться портированием на *nix тому, кому оно под никсы нужно)
0
К тулчейну планируется, к отладчику если разберусь как то тоже. Но не скоро. Для гитхаба еще сыровато. Не все еще реализовал :)
0
Для гитхаба еще сыровато. Не все еще реализовал :)
Дело хозяйское, но, в общем, гитхаб по сути и предназначен для разработки, а не для хостинга завершенных проектов. Т.е. на гитхаб — на любой стадии не рано)
+2
Гит — это разумно! И обновлять и баг трекер и пожелания — все там есть!
Ну это при условии что проэкт таки будет развиваться!
Как будет готов мастер создания проектов и компилятор хотябы — готов помочь чем смогу в портировании на мак.
0
Есть какие-то новости по проекту?
0
Проект обновляется приблизительно раз в неделю — две, доступен по той же самой ссылке. Все обновления расписаны при запуске сетапа и в файле Version.txt в папке с программой. Например сейчас уже можно полностью забить на использование мышки.
0
На всякий случай вот изменения:
New: Создание файлов по шаблонам
New: Переработано управление поиском
New: История поиска
Fix: Переназначение горячих клавиш
New: Активные проекты
New: Контекстное меню управления проектами и файлами
Fix: Управление проектами
Fix: Добавление и переназначение горячих клавиш F4 F5 F6
New: Выборочное удаление активных файлов из списка
Fix: Управление проектами
Fix: Оптимизация окна поиска
Fix: Оптимизация управления проектами
Fix: Переключение между *.c, *.cpp и *.h файлами
New: Создание директории при открытии файла
New: Подсветка искомых слов
Fix: Незначительные баги
Fix: Список активных файлов
Fix: Привязка позиций курсоров к именам файлов
New: Создание нового файла через открытие несуществующего
Fix: Перечитать открытый файл
New: Действия после открытия активного файла
New: Добавлена навигация по активным (рабочим) файлам
Fix: Переназначение функций клавиш Crl+O, Crl+L, Crl+R
Del: Список перехода
Fix: Отмена перехода по Ctrl+Q
New: Расширения файлов проекта теперь указываются с маской:
*.c,*.cpp,*.h,*.hpp,*.txt,*make*
После апгрейда необходимо обновить список расширений вручную.
0
актуально для малых экранов — Можно ли сделать сворачивани и разворачивание содержимого { }, как это сделано в Notepad++ для С, С++ файлов?
0
Хорошо, запишу в хотелки. Но это немного идет в разрез с основной идеей — навигацией по коду без мышки. Для перехода по скобкам есть Ctrl+Shift+B, для перехода по функциям — Ctrl+H. Свернуть выделенный текст можно и сейчас.
0
Если оно ориентировано на клавиатурное управление — то просто необходим хелп, который внятно его описывает. Как список хоткеев, так и краткое описание workflow с указанием наиболее употребительных сочетаний. Ну и вообще документация — важная штука.
0
Оказывается, доки кто-то читает… :) Просто не стал с ними заморачиваться, так как функционал программы еще точно не определен, и тратить время на правки документации в этом случае не очень правильно. Вот когда версия доползет до единички, тогда сделаю.
0
Чем больше описывать надо будет — тем ленивее будет этим заниматься. Ну и твоя IDE без доков вызывает только одно впечатление при первом знакомстве — «WTF???». Так что доки и квикстарт нужны, еще как.
0
В опенсорс еще не надумал перевести? А то интересно поковырять. А может даже и попилить (врядли, конечно — слишком ленивый).
+1
  • avatar
  • Vga
  • 05 мая 2015, 11:34
Я помню. Пока проект развивается, повременю. А то начнет двигаться или деградировать в направлении, не угодном автору. На финальной ступеньке — скорее да. Когда его опенсорс уже почти ничем не испортит :)
0
А то начнет двигаться или деградировать в направлении, не угодном автору.
Твой проект же — у тебя будет над ним полный контроль. В неугодном направлении может развиватьсят только форк — у него уже будет другой хозяин.
+1
Есть новости?
0
Отчет за 2016 год. За 2016 в Softomato появилось много интересного. Из основных плюшек — прикручен компилятор AvrGСС (бесплатный компилятор для AVR90), CppCheck (бесплатный поиск ошибок в коде). Потенциально можно прикрутить все что угодно через правку текстовых epm файлов (ExternalPrograM). Запуск внешних программ (компиляторы, гляделки, калькуляторы, программаторы и пр.) осуществляется по имени: нажал Ctrl+E, написал пару букв нужной программы (оконная или консольная — без разницы), нажал Enter и все запустилось. Наконец прикрутил вложенные папки. Полезно для программирования под STM32. И добавил кеширование разбора кода. Softomato и так летает, но теперь приблизился к 1 космической скорости. Кстати GCC для STM32 еще не прикручивал, но в теории должно работать. Принцип тот же, что и для AvrGСС — свой epm файл. Еще появился мультибуфер, эта полезная шняга нужна для одновременной работы с несколькими переменными. Переработано контекстное меню, теперь на мелком ноуте все влезает в экран. Ну и исправлены мелкие ошибки и добавлены новые (шутка). Все это более подробно описано в файле Versions.txt. Своим новогодним 815 билдом Softomato поздравляю всех пограммеров с НГ! Ну и по секрету скажу, что еще не все прикрутил, что хотел :)
0
А сырки выложить еще не собрался?
И неплохо бы документацию вменяемую. Слишком нестандартная штука, да еще и управляется как я понял больше с клавы, чем с гуя.

И это, с новым годом)
0
Доки нарисую когда все хотелки реализую, сырки могу и на почту твою отправить, для гитхаба не созрел еще. Спасибо!
0
А почему не используешь циклы по Components для таких вещей, как обновление шрифта и цвета вместо простыней SynEditX.Font:=blablah, ComboBoxX.Color:=blablah? Короче и нет риска забыть внести новый комбобокс.
Еще, конечно, оно изрядно нуждается в переименовании компонентов из SynEdit1, SynEdit2, ..., SynEdit19 в более понятные названия, и, как по мне, в изрядном рефакторинге) 6к строк хендлеров — это сурово.
+1
Хорошо, учту. Спасибо за наводку.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.