OberonCore
https://forum.oberoncore.ru/

Oberon-2 IDE на основе Notepad++
https://forum.oberoncore.ru/viewtopic.php?f=30&t=2027
Страница 4 из 7

Автор:  Александр Шостак [ Вторник, 30 Март, 2010 21:34 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Спасибо большое за труд Изображение . Сам пишу только в Notepad++.

Автор:  Александр Ильин [ Пятница, 02 Апрель, 2010 11:58 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Доступен для скачивания плагин Obide (Oberon IDE) v2.3. Что нового:
- Добавлена настройка Global.autoCMaxHeight, задающая максимальную высоту списка автодополнения. По умолчанию = 32.
- Высота списка автодополнения не будет превышать половины высоты экрана (оба значения измеряются в строках).
- Новое: при выборе элемента из списка автодополнения хвост текущего идентификатора будет удалён. Таким образом, заменять один идентификатор на другой с помощью списка стало проще.
- Изменено: список автодополнения не будет преждевременно исчезать при удалении части редактируемого идентификатора.
- Ввод следующих символов подтверждает выбор идентификатора из списка автодополнения (ранее подтверждение было возможно только клавишей Enter): ([{}]).:;,+-*/|<>=#^& Tab Space Enter. Это все символы, которые могут быть расположены после иденификатора в языке Oberon.
- Новое: подсказки Code Hints будут отображаться не только при нажатии Ctrl+Alt+Space, но и при наведении курсора мыши на идентификатор. Задержка перед отображением подсказки задаётся новым параметром Global.mouseHintDelay в мсек (по умолчанию = 500, т.е. половина секунды). Если задать значение 10000000, то подсказки отображаться не будут.

Ссылка для скачивания (также через некоторое время будет доступна установка средствами стандартного плагина "Plugin Manager"):
http://downloads.sourceforge.net/projec ... .2.3.0.zip (151 Кб)

Описание и история изменений:
http://sourceforge.net/projects/oberonr ... 0.txt/view

UPD:
Поправил ссылки для скачивания.
Плагин так и не успел стать доступен через Plugin Manager: версия 2.3.1 вышла раньше.

Автор:  Александр Ильин [ Пятница, 02 Апрель, 2010 12:02 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Berserker писал(а):
Спасибо большое за труд Изображение . Сам пишу только в Notepad++.
Спасибо Штефану Мецлеру за то, что терпит занятия данной фигнёй вместо работы. : )
Сам-то он до сих пор на MultiEdit'е.

Автор:  Александр Ильин [ Пятница, 02 Апрель, 2010 14:41 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
За день добавил нужный функционал в свой плагин WebEdit. Ещё полдня с релизом и документацией промаялся. Вот и все дела.
Кстати, вот здесь можно посмотреть анонс релиза и ссылки для скачивания: http://sourceforge.net/projects/notepad ... dex/page/4 . Текущая версия: 2.1.

Автор:  Sergo [ Суббота, 03 Апрель, 2010 15:11 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
- Добавлена настройка Global.autoCMaxHeight, задающая максимальную высоту списка автодополнения. По умолчанию = 32.
- Высота списка автодополнения не будет превышать половины высоты экрана (оба значения измеряются в строках).
Теперь все ок - нижняя часть списка не срезается.
Александр Ильин писал(а):
- Новое: подсказки Code Hints будут отображаться не только при нажатии Ctrl+Alt+Space, но и при наведении курсора мыши на идентификатор.
О, полезная вещь. Правда, в Obide она ведет себя немного иначе, чем в других средах: если сместить курсор с идентификатора (перевести его на пустое место), подсказка не исчезает. Чтобы ее погаситить, надо либо нажать Esc, либо просто щелкнуть мышью в любом месте текста. Впрочем, больших неудобств это не вызывает.
Еще один момент - изменение параметра mouseHintDelay в ini-файле почему-то не приводит к изменению задержки при появлении подсказок.

Автор:  Александр Ильин [ Суббота, 03 Апрель, 2010 17:09 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Sergo писал(а):
Теперь все ок - нижняя часть списка не срезается.
Отлично.
Sergo писал(а):
О, полезная вещь. Правда, в Obide она ведет себя немного иначе, чем в других средах: если сместить курсор с идентификатора (перевести его на пустое место), подсказка не исчезает. Чтобы ее погаситить, надо либо нажать Esc, либо просто щелкнуть мышью в любом месте текста. Впрочем, больших неудобств это не вызывает.
Да, мне тоже это не нравилось, но дополнительных настроек для изменения этого поведения я не нашёл. А теперь вот вы меня заставили подумать ещё раз, и я понял, как это можно сделать. Просто буду прятать текущую подсказку через Global.mouseHintDelay, если под курсором мыши в новом положении нет идентификатора.

Исправил, ждите в следующей версии.

Вообще, идея мною взята из Delphi. Там ещё Ctrl+Click переходит к объявлению идентификатора. Тоже можно сделать.

Предложения приветствуются.
Sergo писал(а):
Еще один момент - изменение параметра mouseHintDelay в ini-файле почему-то не приводит к изменению задержки при появлении подсказок.
Хм... Это я не проверил, мог где-то напортачить...

А, понял. Ini-файл читается после того, как настройки произведены. Раньше не заметил, потому что прочие настройки применяются непосредственно при использовании, а эта - один раз при старте программы. Исправил, ждите в следующей версии.

Автор:  Sergo [ Воскресенье, 04 Апрель, 2010 21:04 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Еще одна небольшая проблема со списками в автодополнении. Если длина идентификатора, объявленного в каком-либо модуле, превышает 32 символа, то он в списке идентификаторов этого модуля не отображается.

Если длина имени какого-либо поля записи, объявленной в текущем модуле, превышает 32 символа, то оно хотя и отображается в списке полей для экземпляра этой записи, но при нажатии на Enter выводится в усеченном до 32-х символов виде.

Автор:  Sergo [ Понедельник, 05 Апрель, 2010 15:32 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
Предложения приветствуются

Есть одно предложение, но не знаю, насколько просто его реализовать. В конструкциях c WITH

WITH Переменная_Типа_1 : Тип_2 DO ... END;

сделать так, чтобы в области действия WITH при автодополнении отображался список полей для Тип_2, а не Тип_1, как сейчас.

А вообще главное, чтобы фич не было слишком много:)

Автор:  Александр Ильин [ Понедельник, 05 Апрель, 2010 16:22 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Sergo писал(а):
Если длина идентификатора, объявленного в каком-либо модуле, превышает 32 символа, то он в списке идентификаторов этого модуля не отображается.
Это ограничение парсера. 64 хватит?
XDS позволяет идентификаторы до 254 символов, но меня жаба давит.

Автор:  Sergo [ Понедельник, 05 Апрель, 2010 18:26 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
64 хватит?
Думаю, вполне. Сейчас посмотрел свои модули - самый длинный идентификатор - 31 символ.

Автор:  Александр Ильин [ Среда, 07 Апрель, 2010 16:24 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Доступен для скачивания плагин Obide (Oberon IDE) v2.3.1. Что нового:
- Исправлено: игнорировалось значение параметра Global.mouseHintDelay в ini-файле.
- Исправлено: Code Hint не убирался с экрана при уводе курсора мыши с идентификатора.

Ссылка для скачивания (также через некоторое время будет доступна установка средствами стандартного плагина "Plugin Manager"):
http://downloads.sourceforge.net/projec ... .2.3.1.zip (151 Кб)

Описание и история изменений:
http://sourceforge.net/projects/oberonr ... 1.txt/view

Автор:  Александр Ильин [ Среда, 07 Апрель, 2010 16:26 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Sergo писал(а):
Сейчас посмотрел свои модули - самый длинный идентификатор - 31 символ.
В таком случае и проблемы, вроде бы, нету. Даже есть запас в 1 символ - раздолье! : )

Автор:  Александр Ильин [ Среда, 07 Апрель, 2010 16:34 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Sergo писал(а):
Есть одно предложение, но не знаю, насколько просто его реализовать. В конструкциях c WITH ...
Это у меня есть в todo-листе, но конкретных планов на реализацию пока нет. Вообще, из троицы "type guard, WITH, SYSTEM.VAL" WITH реализовать проще всего. Если есть желание поучаствовать, могу поделиться исходниками в достаточном для компиляции проекта объёме (ту часть, что из библиотеки Amadeus, дам в бинарном виде).

Автор:  Александр Ильин [ Среда, 07 Апрель, 2010 16:42 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Проект NO2 помещён на GitHub:
http://github.com/AlexIljin/NO2

Текущая версия по-прежнему 0.1. Ждём релиза Oberon-2 Lexer v1.0, тогда будет NO2 v0.2.
Если у кого есть желание, принимаются варианты правил для Oberon-2 в Function List (править xml-файл: GUI не работает).
По вопросам пользования git/github можно завести отдельную тему.

Автор:  Александр Ильин [ Среда, 07 Апрель, 2010 16:44 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
ту часть, что из библиотеки Amadeus, дам в бинарном виде.
Ну почему мне это в голову раньше-то не пришло? Давно пора исходники раздавать.

Автор:  Sergo [ Четверг, 08 Апрель, 2010 00:53 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
Доступен для скачивания плагин Obide (Oberon IDE) v2.3.1.
О, теперь все ок. Немного напрягает, что если задана большая задержка, то подсказка долго не исчезает. Идеально было бы, если бы параметр mouseHintDelay влиял только на задержку при появлении подсказки, а исчезала бы она мнгновенно. Впрочем, это не такое уж и большое неудобство.

Автор:  Sergo [ Четверг, 08 Апрель, 2010 00:54 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
Sergo писал(а):
Сейчас посмотрел свои модули - самый длинный идентификатор - 31 символ.
В таком случае и проблемы, вроде бы, нету. Даже есть запас в 1 символ - раздолье! : )
Еще пару букв, и лимит будет превышен:) Хотя, конечно, такие длинные идентификаторы - редкая вещь.

Автор:  Sergo [ Четверг, 08 Апрель, 2010 00:56 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Александр Ильин писал(а):
Проект NO2 помещён на GitHub
Интересный проект. Как я понял, тут пока стоит какая-то ранняя версия Obide, но наличие фолдинга радует. Не планируется ли переход на пятую версию Notepad++?

Автор:  Александр Ильин [ Четверг, 08 Апрель, 2010 03:49 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Sergo писал(а):
Александр Ильин писал(а):
Проект NO2 помещён на GitHub
Интересный проект. Как я понял, тут пока стоит какая-то ранняя версия Obide, но наличие фолдинга радует. Не планируется ли переход на пятую версию Notepad++?
В ветке master Obide v2.3.1 (последний) и Notepad++ v5.6.8 Unicode (последний).

Автор:  Александр Ильин [ Вторник, 13 Апрель, 2010 12:03 ]
Заголовок сообщения:  Re: Oberon-2 IDE на основе Notepad++

Занимаюсь чисткой кода от LOOP'ов. Notepad++ и Obide помогают анализировать код. Пример из практики:
Вложение:
Code1.png
Code1.png [ 4.27 КБ | Просмотров: 13648 ]
Надо понять, подходит ли данный блок под известную схему. Для этого ставим курсор на переменную "user" и нажимаем Ctrl+M:
Вложение:
Code2.png
Code2.png [ 4.43 КБ | Просмотров: 13648 ]
Видим, что использование переменной "user" подходит под нужную схему, но необходимо убедиться, что на её значение не оказывают влияния вызываемые процедуры: StorePrinterSettings и PathTools.AppDataFolder. Переменная локальна, значит она может изменяться либо локальными процедурами, либо при передаче по ссылке. Обе процедуры не являются локальными, а передаётся "user" только в PathTools.AppDataFolder. Осталось узнать, как она туда передаётся - по значению или по ссылке. Для этого наводим курсор мыши на имя процедуры и смотрим на список параметров во всплывающей подсказке:
Вложение:
Code3.png
Code3.png [ 4.55 КБ | Просмотров: 13648 ]
Ключевого слова "VAR" перед первым параметром нет, значит и побочные эффекты не возможны.
Вывод: цикл подходит под известную схему.

Страница 4 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/