OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 05 Декабрь, 2019 17:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 27 Август, 2013 13:18 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
От себя добавлю - автозаполнение секции импорта при вводе пользователем имени нового модуля.


Последний раз редактировалось Пётр Кушнир Вторник, 27 Август, 2013 16:03, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 15:02 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2464
Предлагаю встроить навигатор по процедурам модуля в твою обертку, чтобы при нажатии определенной комбинации текст заменялся на этот навигатор. А при нажатии на процедуру переходил у нужной позиции.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 15:28 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Во, точно, превращение произвольного идентификатора в ссылку на его исходник (или документацию). В эклипсе сделано превращение в ссылку по нажатию Ctrl кажется. Довольно удобно.
Иван Денисов писал(а):
Предлагаю встроить навигатор по процедурам модуля в твою обертку, чтобы при нажатии определенной комбинации текст заменялся на этот навигатор. А при нажатии на процедуру переходил у нужной позиции.
Лично мне навигатор удобнее держать в отдельном окне, всё же. А как будет выглядеть навигация в твоём сценарии? Может удобнее будет сделать интерактивный поиск по строке, как это реализовано в браузерах?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 19:51 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
1) Часто бывает, что процедура объявлена ниже, чем её первый вызов. Её же не видно за пределами экрана. Поэтому удобно было бы не только автоматически дописать имя процедуры, но и сразу же обозначить неправильную ситуацию.

2) Иногда я при формировании алгоритма сперва пишу вызовы, а лишь потом оформляю сами процедуры. При этом, автодополнятор мог бы задать вопрос, "а не сгенерить ли процедуру?".

P.S.
3) Зачастую, при написании вызова процедуры, не помнишь её сигнатуру. Интеллисенсы вроде как открывают окошко с подсказками, а тут можно было бы автоматически подставить все необходимые переменные сразу, буде таковые найдены поблизости.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 20:14 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Если не трудно, самую суть идеи выдели жирным, чтобы потом за такие выделения глазом цепляться (привет плоским исходникам).

Иван Кузьмицкий писал(а):
2) Иногда я при формировании алгоритма сперва пишу вызовы, а лишь потом оформляю сами процедуры. При этом, автодополнятор мог бы задать вопрос, "а не сгенерить ли процедуру?".

Прямо посреди пустого места в документе пишешь, например:
Код:
Log.String('this');
:?:
Не проще ли в будущем воспользоваться сгенерированной в три нажатия клавиш процедурой?
Иван Кузьмицкий писал(а):
3) Зачастую, при написании вызова процедуры, не помнишь её сигнатуру. Интеллисенсы вроде как открывают окошко с подсказками, а тут можно было бы автоматически подставить все необходимые переменные сразу, буде таковые найдены поблизости.
Пробовал такое в Эклипс, угадывает процентов 40 нужных переменных.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 20:47 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2464
Пётр Кушнир писал(а):
Во, точно, превращение произвольного идентификатора в ссылку на его исходник (или документацию). В эклипсе сделано превращение в ссылку по нажатию Ctrl кажется. Довольно удобно.
Иван Денисов писал(а):
Предлагаю встроить навигатор по процедурам модуля в твою обертку, чтобы при нажатии определенной комбинации текст заменялся на этот навигатор. А при нажатии на процедуру переходил у нужной позиции.
Лично мне навигатор удобнее держать в отдельном окне, всё же. А как будет выглядеть навигация в твоём сценарии? Может удобнее будет сделать интерактивный поиск по строке, как это реализовано в браузерах?

Алгоритм работы: Хочешь перейти к определенной процедуре? Нажимаешь Ctrl+L, текст заменяется на содержимое окна Навигатор. Находишь нужную процедуру, нажимаешь ее, тебя перебрасывает на нужное место в тексте в том-же окне. Было бы супер.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 27 Август, 2013 21:53 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Понял о чём ты.
Думаю, эта задача в принципе не зависит от якоря в тексте (в нём упор больше на интерактивность реакции на ввод конкретных слов и выражений), и может быть реализована извне, с развитием хоста и оконной подсистемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 28 Август, 2013 12:54 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Пётр Кушнир писал(а):
Если не трудно, самую суть идеи выдели жирным, чтобы потом за такие выделения глазом цепляться (привет плоским исходникам).
Идея описана текстом. Тут весь текст получается значимый. Придётся всё жирным выделять :)

Пётр Кушнир писал(а):
Прямо посреди пустого места в документе пишешь, например:
Код:
Log.String('this');
:?:
Не проще ли в будущем воспользоваться сгенерированной в три нажатия клавиш процедурой?

Например, я только что написал:
Код:
SternActions.Do(UpdateFeedEvent)
Процедуры UpdateFeedEvent ещё нет, её вполне можно автоматически сгенерировать (чуть выше по коду относительно того места, где только что я напечатал), на основе сведений из сигнатуры SternActions.Do.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 28 Август, 2013 13:59 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Иван Кузьмицкий писал(а):
Например, я только что написал:
Код:
SternActions.Do(UpdateFeedEvent)

Процедуры UpdateFeedEvent ещё нет, её вполне можно автоматически сгенерировать (чуть выше по коду относительно того места, где только что я напечатал), на основе сведений из сигнатуры SternActions.Do.
А, понятно. Ещё можно переменные заводить по тому же сценарию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 29 Август, 2013 12:31 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
После того, как ставишь звёздочку экспорта, выделять жирным экспортированное имя.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 19:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Ввести первые две буквы и подтвердить подбор слова нажатием Enter? Легко, если у вас есть обёртка контроллера текстового документа.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 19:49 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Сегодня мы поняли, что для автораскраски годятся несохраняемые расширения стандартных аттрибутов TextModels.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 20:22 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Судя по тому, что из 30-ти ответов за неделю половина мои, на форуме было веселее и интереснее, когда автокомплита в ББ не было даже в планах. :mrgreen:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 31 Август, 2013 06:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2464
Пётр Кушнир писал(а):
Судя по тому, что из 30-ти ответов за неделю половина мои, на форуме было веселее и интереснее, когда автокомплита в ББ не было даже в планах. :mrgreen:

Все замерли в ожидании :) ну и, конечно, в шоке, что кто-то чего-то делает...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 31 Август, 2013 08:11 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
После того, как ставишь звёздочку экспорта, выделять жирным экспортированное имя.
Вот это легко навесить на ту же F5.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Сентябрь, 2013 14:42 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Скрестив ужа с ежом получил на выходе наивный бинарный велосипед помогающий быстрому подбору продолжений слов, которые набирает пользователь. Пока что укладываюсь в жёсткие рамки мгновенной реакции (до 0.2 секунды) на ввод символов.
Предыдущий вариант был построен на списках и в процессе работы начинал безудержно толстеть и подтормаживать сборку мусора. А теперь всё лежит в бинарном виде и быстро парсится по факту.
Хотел сначала использовать Stores, но потом понял, что не представляю, как простыми средствами сделать пропуск чтения большинства внутренних Stores без прерывания процесса чтения внешней Store.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Сентябрь, 2013 15:22 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4352
Откуда: Россия, Орёл
BSON в MongoDB, если я не ошибаюсь, и применяется для хранения и обработки "документов". А не только для передачи по сети.

А опыт хороший.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Сентябрь, 2013 15:23 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4352
Откуда: Россия, Орёл
Кстати, а какие объёмы?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Сентябрь, 2013 16:03 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2634
Откуда: Россия, Ярославль
Я проверял на списке из 50-ти тысяч слов, загрузка получалась долгой (её я не оптимизировал :mrgreen: ), перерасход памяти один к десяти, но в процессе работы варианты он мне подставлял мгновенно, там у меня механизм специальный, который не позволяет механизму подбора слова работать дольше 200 миллисекунд, иначе выдаёт ошибку, так вот он ни разу не выдавал такую ошибку.

А для исходников объёмы уникальных слов у меня пока совсем маленькие, 200-400 уникальных слов в рамках модулей одной подсистемы получается. Это без всяких синтаксических анализаторов оберона, просто слова из исходников. Думаю, для автокомплита исходников производительность достаточная.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Январь, 2014 16:04 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2464
Пётр, а где лежит итог твоих усилий по обертке и автокомплиту?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB