2011-10-10 20 views
23

Mogę to zrobić dla funkcji systemowych, takich jak const, zaznaczając je, klikając prawym przyciskiem myszy i wybierając wyszukiwanie (metadane). To samo nie działa w przypadku funkcji zdefiniowanych przez użytkownika.Jak "przejść do definicji" dla funkcji zdefiniowanej przez użytkownika w Leksah?

Jak wykonać takie wyszukiwanie?

Jeśli jest to niemożliwe dla funkcji zdefiniowanych przez użytkownika, jak czytasz istniejący już projekt Haskell i przeskakujesz między definicjami a wywołaniami?

Vim + ctags działają tylko dla funkcji zdefiniowanych przez użytkownika i nie są tak wydajne jak cscope dla źródła c/C++.

+0

Czy kiedykolwiek znalazłeś rozwiązanie? Jeśli po znalezieniu czegoś lepszego niż potwierdzenie otrzymasz odpowiedź i opublikuj go. – KobeJohn

+0

@kobejohn Nie ma lepszego rozwiązania. – wenlong

+0

Czy próbowałeś ack-grep? – KobeJohn

Odpowiedz

0

To rozwiązanie może być całkowicie nieprzydatne, ponieważ nie używam Haskella, ale czy dla ciebie zadziałałaby ack-grep? Uważam, że jest to bardzo przydatne do wykonywania nurkowań w kodzie.

Widzę w the documentation, że obsługuje on haskell.

wierzę użyłbyś: ack --haskell user_function

2

Próbowałem, co pan powiedział z funkcji zdefiniowanych przez użytkownika i działa dobrze dla mnie. Wybieram nazwę funkcji, kliknięcie prawym przyciskiem myszy, wyszukiwanie (metadane) i pojawia się ona w zakładce wyszukiwania po prawej stronie. Następnie klikam "przejdź do definicji" i zajmie mi to określenie. Może powinieneś spróbować zrestartować Leksah? Zauważyłem, że czasami nie rozpoznaje ono funkcji natychmiast po ich napisaniu, ale jeśli go zrestartujesz, rozpozna je.

1

Musisz użyć "Aktualizuj dane obszaru roboczego" w menu "Konfiguracja" - Leksah nie indeksuje funkcji tworzonych przez użytkownika, dopóki tego nie zrobisz (lub zrestartuj kompilator). Domyślnym skrótem w systemie Windows jest Ctrl + M.

Powiązane problemy