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/


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

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