Форум » GUI » Утилита "список процедур/функций" в проекте (условно FuncList) » Ответить

Утилита "список процедур/функций" в проекте (условно FuncList)

gustow: Тут продолжаем разговор про Утилиту "список процедур/функций" в проекте (условно FuncList - поскольку начал "обрабатывать по месту напильником" ее). Начало разговора - тут .

Ответов - 6

Andrey: Что собираем ? Т.е. что возмем в качестве заготовки проекта ?

gustow: Я почти "доподпилил напильником" FuncList из HMG Ext. (в т.ч. добавил экспорт получаемого в "Использование функций" в HTML). Как-то она мне (пока, для пробы) показалась "более ничего". :) Выложу куда-то "на поглядеть" завтра-послезавтра. Посмотри - вдруг тебе что-то больше поглянется в качестве основы? Из имевшихся предложений (см. выше по обсуждению) было: 1) FuncList (HMG Ext. \MiniGUI\UTILS) 2) Project_Analyzer (оттуда же) 3) Click! (Phil Barnett, 1999) (она у меня под XP в упор не желает работать, видимо, в чем-то неправ; и там еще С-шные модули, а не только "чистый Clipper").

Andrey: gustow пишет: 1) FuncList Неплохая утилитка. Построила весь список функций из программ из заданного каталога. Пробовал установить редактор xHarbour\bin\xEditW.exe - не запускается с программой, надо здесь тоже подпиливать. PsPad тоже не вызывается нормально (по номеру строчки или имени функции), хотя в доке написано что может. Но наверно это может быть связано из-за изменений вызовов редакторов (утилита же датирована 2006 годом) и особо это неважно. И еще, уж больно медленно все делает... gustow пишет: 2) Project_Analyzer Пришлось для нее делать описание проекта - файл проект.hpj Неправильно как то. И мои 9,5 Мб текстов проекта так и не построил... Вешается програ и все тут... gustow пишет: 3) Click! Нет у меня ее, не пробовал. Но для документирования проектов думаю - не то ! Нужно делать по моему все по другому. 1) Задать каталог проекта, главный модуль проекта и список внешних функций для проекта. 2) Получить список используемых PRG и список используемых функций 3) Получить список НЕ-используемых PRG и список НЕ-используемых функций 4) Комментарии по функциям нужно как то задавать в PRG-файлах, в описании функций. И получать эти описания в списке используемых/не используемых функций, причем с описанием параметров вызовов функций... Т.е. то что описано в скобках функции - типа MyFunctionXX(par1, par2, ....) Хотя эти описания могут быть и в следующей строке PARAMETERS <params,...> 5) Получить дерево вызовов функций Пока только это на первый вариант. Кто хочет добавить, приглашаю....


gustow: Загрузил самый первый "прикид" (модификация FuncList). Добавил: - экспорт всех (или только НЕвызываемых) функций/процедур в HTML (пока, для простоты; имена HTML-файлов "зашиты" в программе - тоже, конечно, "на пока") - в CalcTables.prg; - более тщательный разбор строк (пропуск коротких - "//". "*" - и длинных "/* */" комментариев и т.п.) - там же; - что-то еще (уж не упомню - видимо, мелочь) в Stack.prg. ToDo: почему-то (не понял пока) НЕ отлавливается ситуация, когда в ДВУХ .prg есть Static-функции с ОДИНАКОВЫМИ именами (ну есть такая дурка в старых проектах, с которыми пришлось иметь дело и которые делал не я; причем функции были немного разные по тексту: видимо, "экономили" время путем копипастенья - а я тут стреляйся...) Файл: http://zalil.ru/32004544 (самоудалится через 10 дней)

Andrey: gustow пишет: Загрузил самый первый "прикид" (модификация FuncList). Проверил. 1,5 часа мои 9,5 Мб текстов проекта "Строят...." Наверно нужно что-то делать для ускорения... Навскидку: может делать не экспорт функций/процедур в HTML а просто сначала создать DBF-файлы функций/процедур , а уж потом в HTML, в DOC и т.д. делать ?

gustow: Andrey пишет: 1,5 часа мои 9,5 Мб текстов проекта "Строят...." Однако... :\ Мои 1,5 Мб - минут 15. На предмет "ускорения" - посмотри в CallsTable.prg функцию FillList(), в ней проходится по списку всех .PRG, анализирует построчно, ища вызовы функций (я как раз ее в основном и дорабатывал - чтобы скипала пустые строки, комментарии, не искала в других файлах Static'и и пр.). Еще не все "замедлялки" реализованы... :) Еще же неплохо бы ловить вызовы функций из DbEdit'ов, AChoice'ов, Get'ов и пр. - а это тоже не пуп царапать :) Andrey пишет: просто сначала создать DBF-файлы функций/процедур , Так оно сперва (опять же - см. результат, отдаваемый FillList()) и создает массив (из которого грид в окне по окончании "построения" заполняется) - а уж потом с этим массивом хоть что можно делать. Просто экспорт в HTML мне тут сходу было проще всего написать. Конечно, для последующего написания комментов лучше в RTF, DOC (да хоть в XLS) загонять... Но пока хоть так - на посмотреть/напечатать.



полная версия страницы