forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Monkey (http://forum.boolean.name/forumdisplay.php?f=163)
-   -   Jentos.Code (http://forum.boolean.name/showthread.php?t=19012)

Жека 11.03.2014 20:01

Jentos.Code
 
Вложений: 3
Всем привет.

Представляю вашему вниманию усовершенствованную версию редактора Ted v1.17, которую я назвал "Ted 2.0 IDE".
Вложение 20233

Несколько картинок:


Описание особенностей:

** АНАЛИЗАТОР КОДА **

для корректной работы анализатора нужно заменить табы на 4 пробела

+ анализирует код при сохранении документа
+ список подстановки подходящих слов (открывается автоматически,
без нажатия на ctrl+space, если длина слова >= 2)
+ показ списка полей класса после точки (требует доработки)
+ автозакрывание (), "", '', [] (иногда не в тему закрывает, требует доработки)
+ в списке codetree добавлено отображение полей классов + иконки для элементов
+ сворачивание блоков (требует доработки).
внимание: может не работать, если вы используете закрывающее слово "end"
(в том числе "end if" с пробелом) для блоков, отличных от class, interface, function, method, select, try.
ещё: при переходе на строку N ("go to line..."), если она внутри свёрнутого блока, то блок разворачивается
+ автозавершение шаблонных сокращений нажатием на tab: fu+tab => function, me+tab => method и т.п.
(комбинации хранятся в файле templates.txt, можно добавлять свои шаблоны)
+ замена #$%? на :int :float :string :bool - при переходе на другую строку
+ замена /* и */ на #Rem и #End
+ контекстный хелп: F1 - показать хелп в статусной строке, ещё раз F1 - переход в хелп
+ удаление пробелов в конце строк


** ИНТЕРФЕЙС / КОДИНГ **

+ тёмное оформление (скопировано с android studio)
+ переход к объявлению переменной нажатием на Ctrl+ЛКМ (в том числе к объявлениям Monkey-классов)
+ при наведении курсора на переменную с зажатой кнопкой Ctrl показывается информация о переменной
+ между областью с кодом и дебагом добавлена всплывающая панель поиска/замены (вместо всплывающего окна)
+ открывать файлы можно перетаскиванием на центральную область
+ некоторые пункты в меню перенесены в другие разделы, как автор посчитал более логичным
+ выделение изменённых строки маркером слева (глючит при undo/redo, не критично)
+ добавлена панель с номерами строк, на которой можно ставить маркеры (bookmarks):
ЛКМ - выделить строку(строки), ПКМ - поставить маркер
также маркеры можно ставить горячими клавишами: Ctrl+M - установить/убрать маркер,
"Ctrl+," - предыдущий маркер, "Ctrl+." - следующий маркер
+ удаление 4 пробелов нажатием на Ctrl+Backspace (эквивалент удаления табуляции)
+ автозакрывание функций, условий, циклов и т.д. по нажатию Ctrl+Enter на строке,
содержащей ключевое слово (if,for,class и т.д.)
+ изменены цвета в подсветке кода
+ выбор директории с Monkey происходит сразу при старте, проверка корректности директории
осуществляется в момент её выбора, а не по нажатию на Okay.
+ подстановка языковых слов и функций (method, function, loadimage и т.д.) нажатием на ctrl+пробел
при перемещении по списку функций в статусной строке пишется краткий хелп
разным типам (константа, функция, метод, ...) присвоены разные иконки
при вставке функций с параметрами подставляются скобки и запятые, отделяющие параметры,
курсор встаёт на место первого параметра
+ разделить панель codetree на файлы с классами + список функций каждого класса
+ в навигаторе панель с кнопками: показывать поля, сортировать по алфавиту
+ панель со структурой документа перенесена влево по умолчанию
+ в статусной строке вместо "Line: row" отображается "row | col"
+ подсветка текущей строки с курсором
+ замена табов на пробелы, 1 таб = 4 пробела
+ "умный" Home: первое нажатие - переход к первому непустому символу в строке,
второе нажатие - переход в самое начало строки
+ "умная" вставка текста: при вставке_между_кавычками производится замена кавычек на ~q
+ при выборе элемента в навигаторе кода курсор ставится по центру
(было обычно снизу, приходилось прокручивать)
+ после "= new " предлагается класс, чей экземпляр создаём
(пока сделана подстановка если строка содержит тип данных, н-р "a:Obj = new ")
+ переход вперёд/назад к точкам последних редактирований кода
(можно перейти к объявлению переменной нажатием ctrl+ЛКМ,
затем вернуться на предыдущее место нажатием стрелки назад
или горячей клавиши
+ тёмное оформление справки сделано на скорую руку: "читаемо - и ладно"


** ПЛАНЫ **

- корректное определение области видимости переменных (scope)
- учитывать наследование
- анализ импортов/инклудов юзера
- доделать показ списка членов класса после точки:
а) чтобы при дальнейшем написании символов список не исчезал
б) вложенные объекты (obj.anim.rect.x)
- при вставке куска кода добавляются лишние отступы
(нужно убирать минимальный отступ всего блока от каждой строки)
- список подстановки вылазит внутри кавычек (в строковом выражении)
- подсветку кода встроить в analyzer, с учётом текущего scope
- учитывать переменные Self и Super, и выдавать список членов после точки
- анализ только изменённого участка кода
- обновлять codetree только для изменённого участка кода, если возможно
- выделять текущее слово_под_курсором везде в документе
- рефактор -- переименовать
- поиск использований переменной (usages)
- после new подставлять подходящий класс, если возможно
- фолдинг области, например для <!-- -->
- две темы оформления, добавить светлую


** ПРОБЛЕМЫ **

- версия не стабильная, но и не особо глючная.
- рекомендуется делать частый бэкап кода
- не проверялась при работе с импортом юзерских файлов, только на исходнике из 1 файла
- иногда приложение внезапно закрывается, ловит нулл поинтер или вроде того - чаще сохраняйтесь
- иногда при удалении выделенной области из нескольких строк сдвигается текст
в соседней области, лечится парой нажатий ctrl+z, - почаще делайте проверку синтаксиса (F6)
- иногда элементы интерфейса получают белую обводку, будто не применяется стиль. нужно перезапустить
- поддержка blitzmax не выпиливалась, но в настройках выбрать компилер нельзя, - только mankey
- не работает с monkeyPro64


** ИНСТРУМЕНТЫ **

Qt Creator 3.0.0 (Qt 5.2.0)
MinGW 4.8 32bit
Ted v1.17



Страничка проекта: http://fingerdev.com/ted20/
Скачать: ted20_v1.0a (21 Mb)

Как видно из описания, сделано не всё что задумано.
Выкладываю эту альфу в связи с тем, что у меня сейчас нет времени заниматься дальнейшей разработкой, чтоб добро не пропадало.

В дальнейшем, если удастся доделать анализатор кода, предложу эту версию в качестве дефолтной среды для Monkey.

UPD: для корректной работы анализатора нужно заменить табы на 4 пробела.

Reizel 11.03.2014 20:28

Ответ: Ted 2.0 IDE
 
Шрифты бы посветлей, нет?
офигенная работа

Randomize 11.03.2014 20:58

Ответ: Ted 2.0 IDE
 
Вложений: 1
So sad...
Вложение 20237

Жека 12.03.2014 07:54

Ответ: Ted 2.0 IDE
 
Цитата:

Сообщение от Reizel (Сообщение 276563)
Шрифты бы посветлей, нет?
офигенная работа

спасибо!
цвет пока такой, в будущем в настройках можно будет изменить.

Цитата:

Сообщение от Randomize (Сообщение 276568)

Угу, забыл папочку.
Положить папку platforms из архива в папку с прогой. СКАЧАТЬ
В шапке перезалит архив.

Randomize 12.03.2014 12:19

Ответ: Ted 2.0 IDE
 
Чудесно! Ещё чуть-чуть и будет конкурентоспособный продукт.

И сразу запрашиваю функцию автоформата кода (расставляет табуляции на вложенных блоках, пробелы между аргументами ф-ции и тд).
По аналогии с Blide/Jungle

Жека 12.03.2014 20:54

Ответ: Ted 2.0 IDE
 
Как только, так сразу. :)

Жека 21.03.2014 22:27

Ответ: Ted 2.0 IDE
 
Вложений: 2
Новая версия 1.0.1

Список новшеств:

***Новое***
+ add: работает список подстановки юзерских слов, включая вложенные конструкции типа world.rect.width
+ add: учитываются переменные Self и Super, для super подставляются только члены из базового класса и интерфейсов
+ add: учитывается наследование, т.е. в списке подстановки видны члены этого класса + базового класса + интерфейсов.
но: если базовый класс тоже от кого-то наследовался, то уже не учитывается
+ add: выцепляются поля из классов манки, String, List, Image и т.п.: string.Split(), list.AddLast(), img.Width()
+ add: список подстановки для массивов: при обращении к самому массиву или к элементу массива (arr. | arr[i].) выдаётся список подстановки (если это массив объектов)
+ add: в codetree выделяется класс, и в навигаторе функция, внутри которой сейчас курсор
+ add: серый скроллбар в хелпе, теперь справка полностью в стиле иде
+ add: убран анализ кода при сохранении в момент закрытия приложения
+ add: при закрытии таба с кодом из codetree удаляется одноимённый пункт (исчезнет при очередном анализе кода)

***Изменения / улучшения***
+ change: в навигаторе список упорядочен таким образом: function, method, global, field
+ change: при вставке функций из списка подстановки всегда добавлялись скобки от функции.
теперь есть проверка - если после функции стоит буква или цифра, то добавляется только открывающаяся скобка.
+ change: для закрывающихся пар "", (), [] :
а) добавлена проверка: если после открывающегося символа стоит буква или цифра, то второй символ пары не добавляем
б) при удалении открывающего символа из пары, если за ним сразу стоит закрывающий, то удаляем оба
+ change: иконка приложения оформлена в тёмном кружочке
+ change: при перемещении по коду между последними редактируемыми строками (go back, go forward) ставить курсор в центр экрана
+ change: подсветка переменных фиолетовым только для членов класса.
но: подсветка сквозная, т.е. проверяется наличие переменной в любом классе, и подсветка в любом классе, даже если где-то такое же имя будет у локальной переменной (ибо покраска пока что не завязана на analyzer)

***Исправления***
+ fix: при вставке многострочного куска кода добавлялись лишние отступы (во многих иде так, в jungle тоже)
теперь блок кода в любом месте должен вставляться с корректными отступами независимо от того, откуда был скопирован и куда вставлен (для ctrl+v и shift+insert)
+ fix: при ctrl+c появляется список подстановки

Пара картинок:

Скачать:
ПОЛНАЯ ВЕРСИЯ (21.6 Mb, включает библиотеки Qt)

ИСПОЛНЯЕМЫЕ ФАЙЛЫ (225 Kb, без библиотек Qt; для тех, кто уже скачивал полную)

moka 22.03.2014 04:38

Ответ: Ted 2.0 IDE
 
Как IDE встретили на офф комьюнити манки?

Жека 22.03.2014 08:02

Ответ: Ted 2.0 IDE
 
Цитата:

Сообщение от moka (Сообщение 277561)
Как IDE встретили на офф комьюнити манки?

я им ещё не показывал.:)
осталось чуток доделать, чтоб ваще конфеткой стал, и можно показывать.

moka 22.03.2014 17:22

Ответ: Ted 2.0 IDE
 
Цитата:

Сообщение от Жека (Сообщение 277567)
я им ещё не показывал.:)
осталось чуток доделать, чтоб ваще конфеткой стал, и можно показывать.

Имхо, лучше показывать на ранних стадиях, т.к. новые пользователи помогают отладить многие аспекты до того как ты ещё наделаешь ложных вещей.
Ship Early

Жека 22.03.2014 22:03

Ответ: Ted 2.0 IDE
 
moka, просто я решил показать за бугор, когда сделаю всё из списка задуманного. неохота, чтобы меня пичкали фразами "тут баг, там баг", про которые я и сам знаю. (при том что инглишем я владею средне)
насчёт ложных вещей - в первую очередь я делаю для себя, пока что нет ничего лишнего. :)

moka 23.03.2014 17:08

Ответ: Ted 2.0 IDE
 
Цитата:

Сообщение от Жека (Сообщение 277594)
moka, просто я решил показать за бугор, когда сделаю всё из списка задуманного. неохота, чтобы меня пичкали фразами "тут баг, там баг", про которые я и сам знаю. (при том что инглишем я владею средне)
насчёт ложных вещей - в первую очередь я делаю для себя, пока что нет ничего лишнего. :)

"пичкали" - а при чём тут это?
Завёл список багов - и всё. Тебе народ помогает тестит - не стоит это воспринимать как что-то плохое.
Не бывает "идеальных" разрабов, все тупят и пишут баги, это норма нашей профессии.

Жека 07.04.2014 08:45

Ответ: Ted 2.0 IDE
 
Вложений: 1
Новая версия 1.0.2.

Редактор переименован в "Jentos IDE".
Переименуйте соответственно эту тему, пожалуйста.

Вложение 20370

Что нового:

***Новое***
add: редактор переименован в "Jentos IDE"

add: автоформат кода, расстановка пробелов.
не форматируем:
а) если строка начинается с решётки #
б) внутри строк

add: в списке автоподстановки для экземпляров классов предлагаются данные из базового класса и интерфейсов.
в предыдущей версии было так только для Self.

add: фолдинг кода - сворачивание и разворачивание области:
1. классы и функции
2. блок #rem -- #end
3. блок '/** -- '**/ (по типу многострочного комментария в си)

add: замена в шаблонах (Map <K, V>, List<T> и т.п.)
замена делается для типов, перед которыми двоеточие: param:T => param:MyObj
если Node<T>, то не заменяем
например:
Local list:List<Car> = new List<Car>
далее в списке подстановки везде будем видеть наш тип 'Car'

add: пункт меню "Edit -- Autoformat all", позволяет скорректировать все строки документа.
использовать для кода, который ранее не редактировали в этом редакторе.
отменить изменения можно простым нажатием Ctrl+Z.

add: раскрывать в codetree файл в котором находимся
при выборе в навигаторе (codetree или source) элемента из другого файла (не текущего), открывается нужный файл на нужной строке

add: замена /* */ на #rem #end

add: для старых версий Monkey не нужно переименовывать trans_winnt.exe в transcc_winnt.exe, проверяется наличие обоих файлов


***Изменения / улучшения***
change: переделано оформление некоторых элементов;
добавлен градиент для верхней панели;
добавлена рамка для сплэш-картинки;
в окошке "About" ссылки кликабельные;

change: теперь анализатор корректно определяет завершение функций и методов для "end method" и т.п., раньше завершать методы нужно было только словом end

***Исправления***
fix: иногда появлялись белые границы у listview (в навигаторе или output'е)

fix: если переменная - это не экземпляр класса, и после неё поставить точку, то выдавались все возможные слова для подстановки. теперь ничего не выдаётся.


Скачать:
ПОЛНАЯ ВЕРСИЯ (21.7 Mb, включает библиотеки Qt)

ИСПОЛНЯЕМЫЕ ФАЙЛЫ (231 Kb, без библиотек Qt; для тех, кто уже скачивал полную)

Ещё я сделал оформление для сайта, посмотрите - http://fingerdev.com.
Там же можно посмотреть дополнительные скриншоты.
Те кто шарит в английском, просьба сообщить о замеченных ошибках.

Пошёл покорять зарубежное комьюнити.

Mr_F_ 07.04.2014 11:47

Ответ: Jentos IDE
 
Цитата:

Jentos is an code
Вроде как 'an' ставится только когда следующая гласная, тут просто 'a' (наверное)

Цитата:

Games
Is empty yet.
Как-то странно звучит, может лучше просто 'nothing yet'?

Цитата:

Templates stored in templates.txt
templates ARE stored, думаю

wolfhound512 07.04.2014 11:56

Ответ: Jentos IDE
 
А я думал что пейпал запрещает принимать пожертвования в РФ
http://habrahabr.ru/post/200404/

Жека 07.04.2014 12:23

Ответ: Jentos IDE
 
Mr_F_, спасибо!

wolfhound512, может инфа устарела? у меня в аккаунте пэйпала указан российский адрес. при этом он позволяет создавать кнопки пожертвований.
при создании кнопки есть такое примечание:
Данная кнопка предназначена для сбора средств. Если вы не собираете средства на какой-либо проект, выберите другую функцию. Некоммерческим организациям следует подтвердить свой статус, чтобы иметь возможность выводить со счета получаемые пожертвования. Пользователи, представляющие некоммерческие организации, не прошедшие проверку, должны продемонстрировать распределение пожертвований, как только их общая сумма достигнет 10 000 долл. США.

Я не уверен смогу ли подтвердить свой статус, организации как таковой нет.
Кто-нибудь шарит в этом? Дайте совет.

Жека 08.04.2014 09:32

Ответ: Jentos IDE
 
На счёт доната - я указал, что пожертвование делается лично для меня; полагаю, это устраняет проблему "некоммерческая организация".

Залил исходники: https://github.com/engor/Jentos_IDE

Жека 08.04.2014 14:24

Ответ: Jentos IDE
 
Товарищ с форума monkey-x.com собрал версию для OS X.
http://yadi.sk/d/vkMnvW7wM2TEN

Какой-то японец задонатил $20. :)

Жека 09.04.2014 14:31

Ответ: Jentos IDE
 
Тот же товарищ собрал версию для линукса.
http://yadi.sk/d/Z5G_G4YbM5uc5

Жека 10.04.2014 08:48

Ответ: Jentos IDE
 
Вложений: 1
Товарищи, нужна помощь по улучшению тёмного варианта справки.
У меня сейчас вот такие моменты есть:
Вложение 20381
т.е. белый фон в таблицах, который не в тему.
С помощью инспектора элементов не смог понять, где этот цвет устанавливается.

Подскажите, где изменить этот цвет в стилях?

Randomize 10.04.2014 09:42

Ответ: Jentos IDE
 
PHP код:

table td{
   
background-color#ccc;



Жека 10.04.2014 11:16

Ответ: Jentos IDE
 
Randomize, ты в теории сказал, но всё равно это привело меня к решению.:)

Оказывается есть заморочка в css, позволяющая задать стиль каждому n-му элементу:
Код:

.content table tr:nth-child(even) > td {
  background-color: #f9f9f9;
}


Randomize 10.04.2014 12:38

Ответ: Jentos IDE
 
Цитата:

Сообщение от Жека (Сообщение 278709)
Randomize, ты в теории сказал

Вопрос был задан в теории. Я могу только предрасполагать каким образом ты переопределяешь стандартный css справки. Твой стиль задаётся после основного стиля от Марка или ты правишь конкретно его CSS?
Так же можно использовать флаг !important для css правил, хотя не рекомендую потому что это костыль.

Жека 10.04.2014 14:34

Ответ: Jentos IDE
 
Да, я не уточнил что речь идёт про файл pagestyle.css - переделанный мной вариант дефолтного файла.
Я правил сам файл, закомментировав значения, которые требовали замены.
Приведённый мной выше кусок стилей - то что было по дефолту.

Жека 13.04.2014 08:29

Ответ: Jentos IDE
 
Создал страничку проги в гугл+.

Жека 03.06.2014 08:07

Ответ: Jentos IDE
 
Понял, что пришло время почитать.
http://netzor.org/uploads/posts/2009...76857_qt45.jpg

Пилю потихоньку новую версию.

Жека 09.06.2014 08:39

Ответ: Jentos IDE
 
Похоже, я приготовил винегрет из сигналов и слотов, - не могу отловить из-за чего крашится прога.

Делаю анализ импортов (import myfile).

Проблема такая: есть пара исходных файлов, в первый файл импортим второй. Далее открываем обы файла в иде и нормально можно редактировать оба, навигация по коду будет и всё прочее. Потом закрываем второй файл. Т.к. он есть в импорте первого, то в codetree видим оба, но теперь при выборе элемента в дереве из второго класса - слетает прога.
Есть подсказка: QtGui.dll.

(пишу в надежде на принцип "как только выскажешь, так и решение находится")

Жека 11.06.2014 10:44

Ответ: Jentos IDE
 
Проблема оказалась неожиданной.
Код мы пишем в элементе QTextDocument. Каждая строчка - это QTextBlock. Я в момент парсинга запоминаю в элементе ссылку на блоки, в которых объявлены классы/переменные/функции.
Для юзерских файлов нет проблем, т.к. документ открыт и все блоки "живы".
Но вот для парсинга модулей манки процедура та же, но после выхода из парсинга документ удаляется, соответственно и ссылки на его блоки становятся кривыми.

У меня такая проверка была:
Код:

if( block.isValid() ) {
    //тут переходим к нужной строчке в файле, если файла нет - открываем
    int line = block.blockNumber(); //вот тут вылетала прога!
}

Я полагал, что проверка блока на валидность меня спасёт. Ан-нет.
В итоге начал переходить просто по ранее запомненному (на этапе парсинга) номеру блока, и всё пашет.

Ещё:

Переделал систему выбора элементов в codetree и sourcelist.
Завёл две хэшмапы для хранения ссылок на элементы анализатора кода.
Нужность их подкрепляется тем, что есть перегрузка методов, а значит одинаковые названия методов могут быть в разных классах. Но это тоже пофиг. Не пофиг стало после того, как я сделал опцию "Показывать родительские элементы" для списка sourcelist. Теперь 1 экземпляр из анализатора может попадать в несколько классов. Я в самом экземпляре хранил ссылку на пункт в codetree для мгновенного доступа к элементу при щелчке, но теперь ссылка затирается последней, т.е. в базовом классе ссылка будет на тот что его унаследовал.

Сделал по простому, строю полный "путь" для пункта в codetree и для самого элемента анализатора codeitem.
пример полного пути:
Код:

test.monkey$A$my_method:Void()
имя_файла$имя_класса$имя_члена_класса

Теперь можно однозначно получать ссылки на элементы, с любой вложенностью.

В данный момент доделываю определение типов переменных при "неявном назначении" через :=.
Примеры:
Код:

'
Local s1:String = "s1"
Local s2 := s1    's2 становится типом String, после точки выдаются все методы для строк
'
Local lst := new List<String>    'lst становится типом List<String>, после точки выдаются все методы для списка

Скоро релиз.:rolleyes:

Жека 19.06.2014 10:07

Ответ: Jentos IDE
 
Вложений: 1
Кроме прочего сделал поиск использований переменной (Find Usages).
Доделываю Rename и выкладываю.
Вложение 20632

Жека 19.06.2014 12:50

Ответ: Jentos IDE
 
Сделал переименование. Пора делать промо: скрины, новое описание на сайт и на форумы.
Просто для прикола функция замены:
Код:

void MainWindow::onUsagesRename() {
    QString newIdent = _ui->editUsagesRename->text();
    if(newIdent == "") {
        QMessageBox::information(this,"Rename","Field 'Rename with' is empty! Enter correct value.");
        return;
    }
    QWidget *w = _ui->usagesTabWidget->currentWidget();
    w = w->layout()->itemAt(0)->widget();
    QTreeWidget *tree = dynamic_cast<QTreeWidget*>(w);
    if(!tree)
        return;
    int newLen = newIdent.length();
    bool selOnly = _ui->chbUsageSelectedOnly->isChecked();
    QTreeWidgetItem *root = tree->invisibleRootItem();
    for(int k = 0; k < root->childCount(); ++k) {
        QTreeWidgetItem *item = root->child(k);
        bool first = true;
        int delta = 0;
        for(int j = 0; j < item->childCount(); ++j) {
            QTreeWidgetItem *sub = item->child(j);
            if(selOnly && sub->checkState(0) != Qt::Checked) {
                continue;
            }
            UsagesResult *u = UsagesResult::item(sub);
            if(u) {
                if(first) {
                    openFile(u->path, true);
                    first = false;
                }
                if(_codeEditor) {
                    int from = u->positionStart+delta;
                    int to = u->positionEnd+delta;
                    _codeEditor->replaceInRange(from, to, newIdent);
                    delta += (newLen - u->ident.length());
                }
            }
        }
    }
}


Жека 19.06.2014 22:14

Ответ: Jentos IDE
 
Наконец-то релиз новой версии 1.1.
Большое получилось обновление. :)

What's new

** Themes **
+ Android, dark.
+ Qt Creator, light.
+ Netbeans, light, is default now.
For docs: file pagestyle.css will be replaced with dark or light version when theme has changed. But you have to restart the app to see changes.

** Code Analyzer **
+ Correct multiple inheritance.
+ Improve parser for interfaces, now it don't expect of pair 'method-end', just 'method'.
The same bug fixed for abstract methods.
+ Folding for "if,while,for,select" statements; and local variables is local for analyzer inside of them.
+ Import myfile - analyze user's imports.
+ Correct parse templates when there are few arguments in line.
+ Analyze variables from 'For local var:Type = ...'.
+ Analyzing for ':=' expression.
+ Check the file modified time before analyzing; if time isn't changed, then don't analyzing.

** Editor **
+ Choose item from autocomplete list by Tab.
+ "Find Usages / Rename" for user's variables.
(Don't change documents between find usages and rename! For another rename do Find Usages again. This function opens all files from CodeTree.)
+ Show hint for all user's variables by Ctrl+"mouse over". Click LMB to jump to declaration line.
Note: not showing hint if document has selection, because this prevents copying.
+ Fix for deleting multi-line selection area; early cursor may jump somewhere.
+ Improved tab/untab indention for multi-line selection area.
+ Click on word 'Import' by Ctrl+LMB to open file.
+ Show mark 'ovr.' for overridden methods on the line number area.
+ Italic font for const, global, function.
+ Fix 'crash when closing tab with code'.
+ Some new template-words (look at templates.txt).
+ Custom contextual menu for code editor, which includes Find Usages and Bookmark actions.
+ Action "File -- New (temp)" - create temp file in folder %Jentos%/projects/ without prompt.
+ Action "View -- Comment / Uncomment Block" - add or remove comment quote for selected lines.
* New item 'Format' in main menu:
+ Autoformat All (works even if item 'autoformat' is off in options)
+ lowercase selection
+ UPPERCASE selection

** Options **
+ Inheritance list after 'Method ' (default is true) - show list with methods from base classes and interfaces.
+ Replace tabs with spaces (default is false).
+ Autoformat on/off (default is true) - replace #$%^ to :Float:String:Int:Bool, add/remove needed spaces.
+ Highlight current line (default is true) - visible carret row.
+ Highlight word under cursor (default is true).
+ Settings now stored in file settings.ini without sub-directory.
+ Check for Updated (default is true).

** Source list **
* Options (checkable buttons):
+ Show Inherited Members
+ Sorting
+ Show Variables
* View class summary - click RMB on the first item (with class name) in the Source list

** Search panel **

+ Add option 'wrap' (early it always was true).
+ Copying selected text to field Find when opens Search panel.
+ Fix 'wrap around' for searching previous.
+ Hide panel by pressing Escape, if focus is on document.

** Other minor fixes **


Screenshots of 3 themes:

Qt Creator


Android Studio


NetBeans


Пробуем, комментируем, донатим денюшку!
Надеюсь, без перевода на русский всем интересующимся понятно.

Жека 20.06.2014 08:22

Ответ: Jentos IDE
 
Небольшой апдэйт:

+ Show Options dialog in the center of Desctop (not tested with multi-monutors).
+ Extract all 'find' actions from menu item Edit to new item Find (see screenshot).
+ Add hint about Themes to Options dialog: Go to "Main Menu -- Window -- Themes" to change current theme.
+ Upload new sources to github.

Скачать:
win_1.1_google
win_1.1_yandex
github


Жека 20.06.2014 11:53

Ответ: Jentos IDE
 
Описание проги на русском языке.

Jentos IDE - это мощный бесплатный редактор кода для языка программирования Monkey.

Ключевые особенности

Анализатор кода
  • Учитывается множественное наследование.
  • Сворачиваемые блоки "if,while,for,select"; локальные переменные, объявленные в этих блоках, доступны только там.
  • Анализируются импорты пользовательских файлов.
  • Автоматическое форматирование текста - добавление недостающих или удаление лишних пробелов в строке.
  • Замена символьных типов переменных # $ % ? на их текстовый эквивалент :Int, :Float, :String, :Bool.
  • Автозавершение парных символов (), "", '', [].
  • Добавление слова End для классов, функций, условий, циклов, селектов по нажатию на Ctrl+Enter на строке объявления.
  • Все модули Monkey "честно" анализируются при запуске приложения, за счёт этого вы всегда используете актуальные данные, согласно вашей текущей версии Monkey.

Список автоподстановки
  • Работает для пользовательских типов и типов Monkey.
  • Список открывается автоматически, если длина слова достигла 3 символа; а также вручную по нажатию на Ctrl+Space.
  • Список включает в себя все элементы, включая унаследованные от базовых классов и интерфейсов.
  • Показываются только те элементы, которые доступны в текущей области видимости.

Шаблоны
  • Позволяют вставлять целые выражения, написав при этом всего пару символов.
  • Нужно лишь написать слово-шаблон и нажать Tab: fu+tab => function, me+tab => method , и т.п.
  • Шаблоны хранятся в файле templates.txt, вы можете добавлять свои.

Удобная навигация
  • Улучшена древовидная структура файла (Code Tree) - всем элемантам назначены тематические иконки; добавлено отображение переменных внутри классов и функций; отображение всех открытых для редактирования файлов, а также подключённых через Import.
  • Дополнительный список 'Source', содержащий дочерние элементы классов и функций, выбранных в Code Tree.
  • Показывается информация о элементе под курсором при наведении на элемент мыши с зажатой кнопкой Ctrl.
  • Переход к объявлению элемента нажатием на Ctrl + Левая Кнопка Мыши.
  • Поиск использований / Переименование элементов.
  • Закомментировать / Раскомментировать выделенный блок.
  • Изменение регистра выделенного текста на строчный (lowercase) и заглавный (uppercase) с помощью горячих клавиш.
  • Добавлена панель "Поиск и Замена" между областью с кодом и консолью.
  • Боковая панель с номерами строк, которая также отображает иконки закладок и пометки изменённых областей кода.
  • Переход вперёд и назад между местами последних редактирований кода.
  • Установка закладок.
  • Подсветка всех слов, совпадающих со словом под курсором.
  • Открытие файлов с кодом простым перетаскиванием файла на редактор.
  • Создание "временного" нового файла без надобности выбирать путь для сохранения.

Контекстная справка
  • Первое нажатие на F1 показывает подсказку в статусной строке, второе нажатие - открываем страницу справки.
  • Показывается информация о элементе под курсором при наведении на элемент мыши с зажатой кнопкой Ctrl.

Несколько тем оформления
  • Android Studio, темная.
  • Qt Creator, светлая.
  • Netbeans, светлая, по умолчанию.
    При смене темы подменяются стили для документации, однако требуется перезапуск, чтобы увидеть изменения.
    При выходе из приложения возвращаются исходные стили.

Жека 19.03.2016 07:54

Ответ: Jentos IDE
 
Всем привет!
Заценяйте большой апдейт.

Что нового в Jentos.Code v1.4.

Переименовал Jentos IDE в Jentos.Code.
Сохраняя версионность - так что это версия 1.4.

Редактор кода


* Не добавляются ненужные символы " ' ) ] если они уже есть под курсором.
* Добавлен диалог "Add property" - в контекстное меню области кода и в раздел View главного меню.
Он делает добавление свойств (property) лёгким и быстрым.
* Ctrl+E - для удаления всей строки под курсором.
* Исправлени: крэш приложения при вставке символов " ' ) ] в конце строки.
* Улучшен алгоритм авто-заглавный букв для служебный слов (логика убрана из подсветки синтаксиса).
Теперь не делаем заглавной букву в слове, пока пишем слово (раньше new сразу же превращалось в New);
* Исправлена логика переходов Назад / Вперёд - раньше после последней позиции мы попадали на первую.
Также теперь запоминается позиция курсора в строке, а не только номер строки.
* Исправлено: выделение через Ctrl+MouseOver - не сбрасывалось. Также теперь не перемещаем курсор в область наведения мышки, это исправляет проблему операций ctrl+c/v/x , ранее вставка могла сработать в области наведения мыши.
* Подсказки: теперь показывается (property) вместо (method) для свойств.
* Исправлена логика выделения текущей строки и слова под курсором. Ранее выделение слов расползалось на несколько строк, если после слова нажать Enter.
Также увеличена область, в пределах которой выделяется слово под курсором, - высотой в 3 экрана; и ещё теперь выделяются однобуквенные слова.
* Слово New: после ввода 'New_' (здесь: _ означает пробел) - показываем список автоподстановки.
Если переменная перед New содержит тип (например :Sprite) - в списке мы увидим этот тип, иначе - увидим имена всех классов.
* Добавлена возможность переключать режим ввода текста - Вставка / Перезапись (Insert / Overwrite mode) нажатием кнопки Insert.

Интерфейс

* Удалил кнопку "lock targets" (пришедшую из форка), потому как можно запретить скролл в выпадающих списках и без неё;
* Новые иконки, взятые с сайта icons8.com, без разрешения авторов, но ссылка на сайт добавлена в раздел About;
* Добавлена кнопка "Class Info" на панель "Source" (ранее инфо можно было получить в контекстном меню, нажав на имя класса правой кнопкой); также текстовые кнопки заменены иконками на этой панели;
* Дабавлены кнопки Undo/Redo в верхнюю панел кнопок-иконок (toolbar);
* Переработано применение тем оформления.
При попытке применить некорректную тему - установится тема по умолчанию, .
Теперь цветовая схема редактора кода не меняется автоматически при смене тем, чтобы не терялись установленные кастомные цвета. Переключаясь со светлой на тёмную и наоборот (или просто ради сброса) можно нажать на кнопку "Set default theme colors".

Анализатор кода

* Добавлен парсинг свойств (property);
* Добавлен парсинг приватной секции классов (но не модулей);
* Улучшен парсинг выражения := , включая конструкцию 'EachIn'. Теперь корректно определяеся большинство случаев.
* Улучшено: если тип переменной или функции или параметра функции представлен в виде ? # % $ , то он бедет распознан корректно и превратится в Bool / Int / Float / String.
* Удалил обработку сниппетов из функции автоформата строки (пришедшую из форка) - здесь ей не место.

Настройки

* Добавлена опция "Show autocomplete list after X typed chars" (раньше было жёстко 3 символа);
* Сразу открываем секцию Paths, если не задан путь к компилятору манки (обычно это при первом запуске);
* Добавлена опция "Capitalize keywords";
* Добавлена опция "Add ':Void' for methods" - если метод не содержит возвращаемое значене, то при нажатии Ctrl+Enter будет добавлен тип :Void, за исключением функции Main - для неё добавляется :Int, и метода New - для него ничего не добавляется (опция находится в секции Analyzer);
* Совместил секции Editor и Themes в одну секцию Editor;
* Добавлена возможность изменять цвета подсветки синтаксиса; изменения видно сразу из окна выбора цвета;
* Добавлена опция "Show line numbers".

Общее

* Исправлено: долгое разворачивание из свёрнутого состояния.
Ох! оказывается, при разворачивании срабатывает событие show(), которое содержало - показ сплэш-скрина с 2-х секундным ожиданием, и парсинг всех моделей манки! Я ожидал, что это событие вызывается 1 раз при старте программы. Исправил логику;
* Добавлен диалог "Save on close" - в нём отображаются все изменённые файлы, можно путём установки галочек выбрать, что будем сохранять, а что нет, с возможностью не сохранять ничего (Discard All); раньше для каждого файла показывалось отдельное окно подтверждения сохранения.
* Обновлено окно About - добавлена ссылка на сайт с иконками, а также изменена ссылка на донат - теперь она ведёт на мою личную страницу, а не на jentos ide.
* Заголовок окна изменяется согласно текущему выбранному файлу. Включая звёздочку, указывающую на наличие несохранённых изменений.
* Иправлено: был крэш приложения после закрытия одной (любой) из вкладок с кодом.

Замечания

Я ещё не тестировал всё на реальном проекте, только на тестовых кусках кода
Поэтому, что-то может работать неправильно.
Разработка ведётся в Qt 5.3 - новые версии долше компилируют, как мне показалось.
А поддержка с++11 не нужна.

Скачать

Свежие исходники на гитхабе: https://github.com/engor/Jentos_IDE
Windows-версия в Dropbox'e: https://www.dropbox.com/s/j5j6hozguh..._v1.4.zip?dl=0

Просьба: Переименуйте тему в Jentos.Code.

impersonalis 19.03.2016 18:10

Цитата:

Сообщение от Жека (Сообщение 304878)
Просьба: Переименуйте тему в Jentos.Code.

:ok:

Жека 21.03.2016 19:46

Ответ: Jentos.Code
 
Сегодня изготовил всем знакомую подсказку к параметрам функции.


Вообще, я взялся за доработку, собираясь сделать нечто большее, чем просто редактор.
Пока что запал иссяк, но кто знает.
Интереса к редактору почти нет на форуме манки.
Наверное большинство разбежались юзать большие движки типа юнити.

Жека 22.03.2016 15:38

Ответ: Jentos.Code
 
Я законтачил с товарищем из германии, который делал свой форк джентоса.
Будем вместе пилить в рамках моего репозитория.
Если кто-то хочет следить за прогрессом, есть публичная доска в трелло - https://trello.com/b/lAdOU94A/jentos-code


Часовой пояс GMT +4, время: 09:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot