Jak znaleźć wszystkie użycia metody w danym repozytorium

1

Witam. Jak sprawdzić gdzie jest używana dana metoda w repozytorium, nad którym właśnie siedzę i jak odnaleźć zbędne zależności w nim? Widziałem wątek na ten temat na stackoverflow, ale chyba z 2010. Podejrzewam, że są już bardziej aktualne narzędzia do tego. Tak dla pewności delfinowe 'search for usages' działa po pierwsze wolno, a po drugie słabo.

1
paranoise napisał(a):

Podejrzewam, że są już bardziej aktualne narzędzia do tego.

Skąd masz takie podejrzenia?

2

Najpierw wypadałoby napisać o które Delphi chodzi.

Mi do takich rzeczy wystarczają narzędzia wbudowane w Lazarusa (tak, wiem, to nie Delphi). Do szukania wystąpień danej zmiennej/funkcji/whatever używam opcji Find identifier references, do tekstu zwykły Find, do usuwania niepotrzebnych modułów jest opcja Unused units, do przeglądania zależności między modułami jest okno Unit dependencies z drzewkami i grafami. Natomiast resztę załatwia linker, przy włączonych opcjach smart linkable (-CX) i link smart (-XX) — wszystkie nieużywane rzeczy są pomijane, rozmiar pliku się zmniejsza.

0

Najpierw wypadałoby napisać o które Delphi chodzi.

Pardon. 10.04.

Mi do takich rzeczy wystarczają narzędzia wbudowane w Lazarusa (tak, wiem, to nie Delphi).

Czytam sobie opinie na dobreprogramy.pl:

Lazarus jest jak (twierdzi producent) kompatybilny z Delphi i umożliwia import projektów Delphi.
Niestety w praktyce nie udało mi się dokonać skutecznego importu najprostszego projektu ponieważ Lazarus nie radził sobie z typowymi podstawowymi komponentami Delphi twierdząc że nie ma w nim dla nich odpowiedników mimo iż w rzeczywistości są w nim odpowiedniki tych komponentów.
Jest to poważna wada ponieważ autorzy programów którzy dotąd tworzyli je w Delphi przy próbie przesiadki na Lazarusa na przywitanie stają przed koniecznością ręcznego przepisania znacznej części kodu, nie stanowi to natomiast problemu w przypadku gdy aplikacja będzie tworzona od zera.

Prawda? Nieprawda? Bo jeśli tak, to niestety mnie to nie czyni. :(

3

To co napisałem o Lazarusie, nie miało być sugestią wymiany IDE, a jedynie potwierdzeniem, że narzędzia wbudowane w środowisko powinny być wystarczające do refactoringu. Delphi jest lepsze i ma większą funkcjonalność niż Lazarus, dlatego nie spodziewam się, żeby było gorzej w nim pracować. Podejrzewam, że gdybym przesiadł się z Lazarusa do Delphi, to raczej niczego by mi nie brakowało.


Jeśli chodzi o import projektów, to tak — w większości przypadków trzeba coś samodzielnie poprawiać. Po pierwsze dlatego, że kompatybilność LCL i VCL nie jest stuprocentowa, a po drugie dlatego, że Free Pascal wspiera znacznie więcej platform niż Delphi, więc jego komponenty i internalsy biblioteki standardowej różnią się od tych z Delphi. Wiele rzeczy wygląda i działa identycznie, ale niektóre są specyficzne dla Free Pascala, ze względu na inną budowę i inny zakres wspieranych platform. Poza tym, Lazarusowy importer projektów zapewne posiada ograniczenia i bugi, z których istnieniem należy się liczyć (każdy software ma błędy).

Mimo wszystko trzeba pamiętać, że import projektu robi się raz, więc biadolenie na to, że coś trzeba zmienić, pozostaje bezsensownym biadoleniem. Nawet jeśli musiałbym tygodniami powolutku portować projekt, to i tak jest to robota jednorazowa. No chyba że decyzja o przeportowaniu projektu jest pochopna, nie uargumentowana sensownie, bez widzenia w tym wyraźnych korzyści w przyszłości, to wtedy raczej straci się na to czas, z własnej winy.

W każdym razie, lepiej mieć nieco niedoskonały importer i co nieco poprawić ręcznie, niż absolutnie wszystko portować samodzielnie — nie tylko przepisywanie kodu źródłowego, ale i ręczne odtwarzanie formularzy, pakietów itd.

0

@furious programming: Też bym obstawiał, że w Delphi niczego nie powinno brakować, ale właśnie dopiero we wczoraj wydanej wersji Delphi 10.3 dodali możliwość podświetlania pasujących fraz, co w Lazarusie jest już od baaardzo dawna.

1

@skrzat: podświetlanie pasujących identyfikatorów w Lazarusie nie jest powiazane z wyszukiwaniem. Działa to tak, że jeśli jakiś tekst jest zaznaczony, to w edytorze podświetlane są duplikaty, a jeśli tekst nie jest zaznaczony, ale znajduje się w obrębie identyfikatora, to inne wystapienia tego identyfikatora są podświetlane.

W ten sposób można wymusić podświetlenie absolutnie dowolnego tekstu (z białymi znakami lub bez, jednoliniowych lub wieloliniowych), co jest super przydatne i czego namiętnie korzystam, w różnych sytuacjach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1