A2 & Oberon » Программирование » Творческие идеи и проекты » Инструмент для создание справочной системы

Страниц (6): « 1 2 3 4 [5] 6 »
 

41. MaDzi - 06 Января, 2009 - 01:01:02 - перейти к сообщению
lit-uriy пишет:
MaDzi пишет:
посмотреть методы и свойства отдельного класса и т.п.
это есть в Qt'ях

Есть, то есть. Но мне приятней смотреть, когда описание даётся в привычном виде

WMSomeObject = OBJECT(WMParentObject)
VAR
bounds: WMRectangles.Rect; (** координаты объекта на экране *)
PROCEDURE Open;
(** Процедура открывает контекст для отображения *)
END WMSomeObject;

(Добавление)
BohdanT пишет:
MaDzi пишет:
Хотелось бы иметь возможность пользоваться справкой в среде A2 и чтобы она была подобна инструментарию Visual Age of Java, где можно раскрыть дерево классов, посмотреть методы и свойства отдельного класса и т.п.

это кстати уже реализовано в PET

В PET я не могу развернуть всё дерево классов (модулей) и посмотреть на него (для того чтобы найти подходящий), не подключая его к своему модулю.
Нет поиска объекта по дереву. Нет детальной информации по классу, с указанием всех экспортируемых полей и методов.
42. lit-uriy - 06 Января, 2009 - 01:03:56 - перейти к сообщению
MaDzi пишет:
Есть, то есть. Но мне приятней смотреть, когда описание даётся в привычном виде
т.е. код?

Я думаю если Богдан осилит сделать первую версию, то можно будет добавить и вставку кода.
(Добавление)
И, Богдан, пес с ними с коментариями, пока.
43. BohdanT - 06 Января, 2009 - 01:10:56 - перейти к сообщению
MaDzi пишет:
Нет детальной информации по классу, с указанием всех экспортируемых полей и методов.

Нужно Ctrl+T нажать, есть вся инфа, плюс на исходник моно переходить
(Добавление)
BohdanT пишет:
И, Богдан, пес с ними с коментариями, пока.

Непонял?
44. MaDzi - 06 Января, 2009 - 01:12:03 - перейти к сообщению
lit-uriy пишет:
MaDzi пишет:
Есть, то есть. Но мне приятней смотреть, когда описание даётся в привычном виде
т.е. код?

Я думаю если Богдан осилит сделать первую версию, то можно будет добавить и вставку кода.

Нет. Не совсем код. Только экспортируемые методы, заголовки экспортируемых процедур и коментарии. Т.е. то что входит в DEF файл. Только в отличие от обычного DEF файла иметь два списка:
1. Модули (во взаимосвязи)
2. Объекты (во взаимосвязи)
45. BohdanT - 06 Января, 2009 - 01:12:50 - перейти к сообщению
MaDzi пишет:
Но мне приятней смотреть

Еще один ответ, на то, зачем нужны шаблоны Ха-ха
с шаблонами каждый может сделать тот вид, который хочет
46. lit-uriy - 06 Января, 2009 - 01:18:57 - перейти к сообщению
BohdanT пишет:
Непонял?
не анализировать коментарии, в первой версии это ненужно (их там всер авно слишком мало).

BohdanT пишет:
Еще один ответ, на то, зачем нужны шаблоны
с шаблонами каждый может сделать тот вид, который хочет
шаблоны ничего не дадут, ты либо тянешь код из файла, либо тянешь только идентификаторы и их сигнатуры (для процедур)/базовые типы (для типов).
47. BohdanT - 11 Января, 2009 - 22:30:05 - перейти к сообщению
lit-uriy пишет:
шаблоны ничего не дадут, ты либо тянешь код из файла, либо тянешь только идентификаторы и их сигнатуры (для процедур)/базовые типы (для типов).


Но то, что я вытяну - нужно куда то сохранять. Просто в текст пихать? Смысл? Ну да ладно пока что это не горит. Главное в памяти все построить на диск всегда успеем сбросить.
---------
Мне интересно именно с комментариями вытянуть все по максимуму!
Давайте смотреть различные случаи, что где что бы получить максимум информации, иначе я не вижу смысла данной работы.
---------
Я для тестов взял модуль WMGraphics как более менее полный комментов, содержащий константы, типы, объекты, переменные и более менее прокоментированный.

Итак первый комент. С ним все понятно и здесь в принципе в порядке практически у всех модулей.

Далее сложней, но очевидно что механизм прасинга коментов должен зависить от секции

Итак секция CONST
	(** Copy Modes *)
ModeCopy* = RasterScale.ModeCopy; ModeSrcOverDst* = RasterScale.ModeSrcOverDst;

(** Scale Modes *)
ScaleBox* = RasterScale.ScaleBox; ScaleBilinear* = RasterScale.ScaleBilinear;

(** Clip Modes *)
ClipNone* = 0; ClipRect* = 1; (*ClipStencil* = 2;*)

(** FontStyles *)
FontBold* = 0; FontItalic* = 1;

Black* = 0FFH; White* = SHORT(0FFFFFFFFH);
Red* = SHORT(0FF0000FFH); Green* = 000FF00FFH; Blue* = 0FFFFH;
Yellow* = SHORT(0FFFF00FFH); Magenta* = SHORT(0FF00FFFFH); Cyan* = 00FFFFFFH;

И так первая загвоздка - один коммент на несколько констант. Как поступить? Может сделать структуру, где коммент содержит список элементов? Или в список элементов просто последовательно вставлять коммент?
Может в других исходниках есть другие стили комментирования?
Нужно ли включать (*ClipStencil* = 2;*) в документацию?
Получается символ перевод коретки нужно вводить в сканер, что бы отделять(разбивать на секции) коменты (имею в виду FontStyles, за которыми идут цвета).
48. MaDzi - 12 Января, 2009 - 01:15:05 - перейти к сообщению
BohdanT пишет:

И так первая загвоздка - один коммент на несколько констант. Как поступить? Может сделать структуру, где коммент содержит список элементов? Или в список элементов просто последовательно вставлять коммент?
Может в других исходниках есть другие стили комментирования?
Нужно ли включать (*ClipStencil* = 2;*) в документацию?
Получается символ перевод коретки нужно вводить в сканер, что бы отделять(разбивать на секции) коменты (имею в виду FontStyles, за которыми идут цвета).

Для начала можно вытаскивать всё, исключая:
1. Не экспортируемые константы, типы, объекты, переменные.
2. Описание переменных и код процедур и методов.

В этом случае получится сохраняются комментарии и структура
49. neuf - 12 Февраля, 2009 - 14:50:49 - перейти к сообщению
В ЕТН Oberon была такая полезная утилита для получения файлов экспорта модулей - Watson. Здесь она тоже есть, правда, только в Oberon. Некоторое время назад я решил проверить, как она работает, не вышло, отставил. Теперь решил снова попробовать. Работает, оказывается! Чтоб ее запустить, нужно зайти в Oberon и в окне, например, System.Log набрать:
Watson.ShowDef WMComponents.Mod~
и нажать по этой строчке средней кнопкой мышки. Файл, который получился, прилагаю.
50. neuf - 12 Февраля, 2009 - 15:01:04 - перейти к сообщению
И сразу вторая полезность. Закатив глазки
Опять делается через Oberon. Для получения иерархии модулей вводим, например:
Builder.InsertHierarchy
WMPerfMon.Mod
WMPerfMonAlerts.Mod
WMPerfMonAlertsUtils.Mod
WMPerfMonComponents.Mod
WMPerfMonPluginActive.Mod
WMPerfMonPluginCpu.Mod
WMPerfMonPluginDisks.Mod
WMPerfMonPluginEvents.Mod
WMPerfMonPluginExample.Mod
WMPerfMonPluginFTPServer.Mod
WMPerfMonPluginHTTPServer.Mod
WMPerfMonPluginHeap.Mod
WMPerfMonPluginInterrupts.Mod
WMPerfMonPluginMemory.Mod
WMPerfMonPluginMessages.Mod
WMPerfMonPluginModVars.Mod
WMPerfMonPluginNetStats.Mod
WMPerfMonPluginNetwork.Mod
WMPerfMonPluginPerfMon.Mod
WMPerfMonPluginQuoteServer.Mod
WMPerfMonPluginSerials.Mod
WMPerfMonPluginUsb.Mod
WMPerfMonPluginVNCServer.Mod
WMPerfMonPlugins.Mod
WMPerfMonTabAlerts.Mod
WMPerfMonTabSystem.Mod
~

Посмотреть, правда, можно только под Oberon'ом. В прикрепленном файле - скриншот. Третья строка не поместилась вся.

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0228]     [ Gzipped ]