Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Хочу написать плагин к IDE Delphi. Помогите, кто чем может.   Найти похожие ветки 

 
Домарощинер ©   (2004-04-16 17:14) [0]

Смысл плагина в том, чтоб пройтись по всем модулям проекта и поудалять все ненужные ссылки на другие модули из секции uses.
Сама технология написания известна(ToolsAPI), а вот как реализовать такую функциональность, у меня пока нет никаких идей.
И ещё маленькая просьба ко всем: если речь идёт об "изобретении велосипеда", просьба кидаться ссылками.


 
Домарощинер ©   (2004-04-16 17:14) [0]

Смысл плагина в том, чтоб пройтись по всем модулям проекта и поудалять все ненужные ссылки на другие модули из секции uses.
Сама технология написания известна(ToolsAPI), а вот как реализовать такую функциональность, у меня пока нет никаких идей.
И ещё маленькая просьба ко всем: если речь идёт об "изобретении велосипеда", просьба кидаться ссылками.


 
Anatoly Podgoretsky ©   (2004-04-16 17:15) [1]

А как будешь определять не нужные?


 
Anatoly Podgoretsky ©   (2004-04-16 17:15) [1]

А как будешь определять не нужные?


 
VMcL ©   (2004-04-16 17:19) [2]

>>Домарощинер ©  (16.04.04 17:14)

DelphiN\Demos\ToolsAPI
___
LMD


 
VMcL ©   (2004-04-16 17:19) [2]

>>Домарощинер ©  (16.04.04 17:14)

DelphiN\Demos\ToolsAPI
___
LMD


 
Домарощинер ©   (2004-04-16 17:20) [3]


> 2Anatoly Podgoretsky ©   (16.04.04 17:15) [1]

Я это тоже хотел спросить...


 
Домарощинер ©   (2004-04-16 17:20) [3]


> 2Anatoly Podgoretsky ©   (16.04.04 17:15) [1]

Я это тоже хотел спросить...


 
Домарощинер ©   (2004-04-16 17:21) [4]


> VMcL ©   (16.04.04 17:19) [2]

Вах!


 
Домарощинер ©   (2004-04-16 17:21) [4]


> VMcL ©   (16.04.04 17:19) [2]

Вах!


 
Юрий Зотов ©   (2004-04-16 17:35) [5]

> Домарощинер ©   (16.04.04 17:14)

Что касается технологии, то посмотрите  
http://delphi84.valuehost.ru/cgi-bin/forum.pl?id=1081864133&n=0
там приведены очень неплохие ссылки.

А что касается определения ненужных модулей... ну, Вы понимаете, да? Пустяковая задачка - всего лишь пропарсить код в модуле и определить, какой идентификатор в нем из какого модуля берется. Вот они и нужны, а остальные не нужны. И еще при всем при этом не забыть учесть Include, если они есть.

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


 
Юрий Зотов ©   (2004-04-16 17:35) [5]

> Домарощинер ©   (16.04.04 17:14)

Что касается технологии, то посмотрите  
http://delphi84.valuehost.ru/cgi-bin/forum.pl?id=1081864133&n=0
там приведены очень неплохие ссылки.

А что касается определения ненужных модулей... ну, Вы понимаете, да? Пустяковая задачка - всего лишь пропарсить код в модуле и определить, какой идентификатор в нем из какого модуля берется. Вот они и нужны, а остальные не нужны. И еще при всем при этом не забыть учесть Include, если они есть.

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


 
Игорь Шевченко ©   (2004-04-16 17:36) [6]


>  а вот как реализовать такую функциональность, у меня пока
> нет никаких идей.


www.peganza.ru Icarus.zip - бесплатно. Идея очень хорошая, но реализация ее сложная


 
Игорь Шевченко ©   (2004-04-16 17:36) [6]


>  а вот как реализовать такую функциональность, у меня пока
> нет никаких идей.


www.peganza.ru Icarus.zip - бесплатно. Идея очень хорошая, но реализация ее сложная


 
Домарощинер ©   (2004-04-16 17:37) [7]

Предлагайте.


 
Домарощинер ©   (2004-04-16 17:37) [7]

Предлагайте.


 
Calm ©   (2004-04-16 17:38) [8]

В каждом модуле, который прописан в uses находим все объявленные переменные, константы, функции, процедуры, типы  и т.д.
Ищем их в файлах проекта. Если не находим - лишний модуль.

Если модуль без исходника, то не получится. Хотя может и можно попытаться программно запустить компиляцию проекта.


 
Calm ©   (2004-04-16 17:38) [8]

В каждом модуле, который прописан в uses находим все объявленные переменные, константы, функции, процедуры, типы  и т.д.
Ищем их в файлах проекта. Если не находим - лишний модуль.

Если модуль без исходника, то не получится. Хотя может и можно попытаться программно запустить компиляцию проекта.


 
Домарощинер ©   (2004-04-16 17:42) [9]


> Юрий Зотов ©   (16.04.04 17:35) [5]

&

> Игорь Шевченко ©   (16.04.04 17:36) [6]

Благодарю за ссылки.

2Юрий Зотов ©   (16.04.04 17:35)
Спасибо за идею.
В принципе, вначале так и собирался делать - парсить исходники. Но потом подумал, что так делать некрасиво.


 
Домарощинер ©   (2004-04-16 17:42) [9]


> Юрий Зотов ©   (16.04.04 17:35) [5]

&

> Игорь Шевченко ©   (16.04.04 17:36) [6]

Благодарю за ссылки.

2Юрий Зотов ©   (16.04.04 17:35)
Спасибо за идею.
В принципе, вначале так и собирался делать - парсить исходники. Но потом подумал, что так делать некрасиво.


 
Anatoly Podgoretsky ©   (2004-04-16 17:42) [10]

Юрий Зотов ©   (16.04.04 17:35) [5]
Согласно этому TManifest и аналогичное подлежит изничтожению :-) Ну не берется из него ничего!


 
Anatoly Podgoretsky ©   (2004-04-16 17:42) [10]

Юрий Зотов ©   (16.04.04 17:35) [5]
Согласно этому TManifest и аналогичное подлежит изничтожению :-) Ну не берется из него ничего!


 
Игорь Шевченко ©   (2004-04-16 17:45) [11]

Ошибся. www.peganza.com


 
Игорь Шевченко ©   (2004-04-16 17:45) [11]

Ошибся. www.peganza.com


 
Anatoly Podgoretsky ©   (2004-04-16 17:51) [12]

Домарощинер ©   (16.04.04 17:42) [9]
Не в красоте дело, кроме то учти сложные, вложенные with и точто по голому идентификатору не определить правильный модуль. Про dcu/bpl уже сказали.
Этот список можно продолжать и далее.


 
Anatoly Podgoretsky ©   (2004-04-16 17:51) [12]

Домарощинер ©   (16.04.04 17:42) [9]
Не в красоте дело, кроме то учти сложные, вложенные with и точто по голому идентификатору не определить правильный модуль. Про dcu/bpl уже сказали.
Этот список можно продолжать и далее.


 
Домарощинер ©   (2004-04-16 18:02) [13]


> Этот список можно продолжать и далее.

Продолжайте,
Очень интересно услышать весь список граблей...)


 
Домарощинер ©   (2004-04-16 18:02) [13]


> Этот список можно продолжать и далее.

Продолжайте,
Очень интересно услышать весь список граблей...)


 
Vuk ©   (2004-04-16 18:06) [14]

Добавлю к списку граблей наличие секции инициализации у модуля. То есть явно код модуля может не использоваться, но секция инициализации может выполнять некоторые действия, которые влияют на работу программы, например, регистрировать классы.


 
Vuk ©   (2004-04-16 18:06) [14]

Добавлю к списку граблей наличие секции инициализации у модуля. То есть явно код модуля может не использоваться, но секция инициализации может выполнять некоторые действия, которые влияют на работу программы, например, регистрировать классы.


 
ИМХО ©   (2004-04-16 18:10) [15]

ССЗБ.


 
ИМХО ©   (2004-04-16 18:10) [15]

ССЗБ.


 
Домарощинер ©   (2004-04-16 18:12) [16]


> но секция инициализации может выполнять некоторые действия

Да-да.
Ведь если б не эта секция, то и особого смысла в этом эксперте не было бы.
А так, благодаря этим секциям только растёт размер готового бинарника...(

Вот ещё идея - можно для большей наглядности кода напротив каждого модуля из секции uses перечислять те классы и методы, которые в нём используются.


 
Домарощинер ©   (2004-04-16 18:12) [16]


> но секция инициализации может выполнять некоторые действия

Да-да.
Ведь если б не эта секция, то и особого смысла в этом эксперте не было бы.
А так, благодаря этим секциям только растёт размер готового бинарника...(

Вот ещё идея - можно для большей наглядности кода напротив каждого модуля из секции uses перечислять те классы и методы, которые в нём используются.


 
Домарощинер ©   (2004-04-16 18:14) [17]


> ССЗБ.

Простите, у Вас имеется веский аргумент?


 
Домарощинер ©   (2004-04-16 18:14) [17]


> ССЗБ.

Простите, у Вас имеется веский аргумент?


 
IGOREK ©   (2004-04-16 18:20) [18]

Я предлагаю проще. :-)

Эмулируем нажатие правой клавиши миши на каждом слове кода и выбор пункта FindDeclaration посылкой сообщений в Дельфу. Если открывается новый исходник - заносим его в список. В конце вырезаем из uses те, что не попали в список.

Или еще круче - программно наводим мышь над каждым словом, ждем хинта, тянем оттуда название модуля и т.д.


 
IGOREK ©   (2004-04-16 18:20) [18]

Я предлагаю проще. :-)

Эмулируем нажатие правой клавиши миши на каждом слове кода и выбор пункта FindDeclaration посылкой сообщений в Дельфу. Если открывается новый исходник - заносим его в список. В конце вырезаем из uses те, что не попали в список.

Или еще круче - программно наводим мышь над каждым словом, ждем хинта, тянем оттуда название модуля и т.д.


 
Vuk ©   (2004-04-16 18:27) [19]

>Если открывается новый исходник - заносим его в список.
У нас в проекте более 700 модулей. Delphi в модулях путается настолько, что Find Declaration практически не работает. Мне теперь все модули из uses поудалять? ;o)


 
Vuk ©   (2004-04-16 18:27) [19]

>Если открывается новый исходник - заносим его в список.
У нас в проекте более 700 модулей. Delphi в модулях путается настолько, что Find Declaration практически не работает. Мне теперь все модули из uses поудалять? ;o)


 
VMcL ©   (2004-04-16 18:45) [20]

Дополнение к [19]

Тем более, что не ко всем модулям может быть указан Browsing Path.


 
VMcL ©   (2004-04-16 18:45) [20]

Дополнение к [19]

Тем более, что не ко всем модулям может быть указан Browsing Path.


 
VMcL ©   (2004-04-16 18:46) [21]

В смысле, к некоторым может быть и не указан :)


 
VMcL ©   (2004-04-16 18:46) [21]

В смысле, к некоторым может быть и не указан :)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.036 c
3-1081759274
alex123
2004-04-12 12:41
2004.05.09
ExpressQuantumGrid - значение поля в LookupComboBox программно?


14-1082362363
Mim1
2004-04-19 12:12
2004.05.09
Монстры


11-1068667399
Deimos
2003-11-12 23:03
2004.05.09
работа с сокетами в KOL


3-1081389531
Unk
2004-04-08 05:58
2004.05.09
MIDAS, Oracle, передача в BLOB через параметр


8-1076758014
iudjen
2004-02-14 14:26
2004.05.09
проиграть файл задним ходом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский