Всем привет!
Заценяйте большой апдейт.
Что нового в 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.