Тема: Jentos.Code
Показать сообщение отдельно
Старый 11.03.2014, 20:01   #1
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Jentos.Code

Всем привет.

Представляю вашему вниманию усовершенствованную версию редактора Ted v1.17, которую я назвал "Ted 2.0 IDE".
Нажмите на изображение для увеличения
Название: splash.png
Просмотров: 1142
Размер:	6.3 Кб
ID:	20233

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

Нажмите на изображение для увеличения
Название: main_aucomp1.png
Просмотров: 1195
Размер:	49.0 Кб
ID:	20234

Нажмите на изображение для увеличения
Название: main_aucomp2.png
Просмотров: 1203
Размер:	66.2 Кб
ID:	20235


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

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

для корректной работы анализатора нужно заменить табы на 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 пробела.

Последний раз редактировалось Жека, 12.03.2014 в 11:11. Причина: upd
(Offline)
 
Ответить с цитированием
Эти 11 пользователя(ей) сказали Спасибо Жека за это полезное сообщение:
Arton (12.12.2017), impersonalis (11.03.2014), LLI.T.A.L.K.E.R. (03.06.2014), moka (11.03.2014), Nerd (13.03.2014), pax (13.03.2014), Randomize (11.03.2014), Reizel (11.03.2014), SBJoker (11.03.2014), St_AnGer (12.03.2014), Черный крыс (12.03.2014)