Jste zde

Podpora pro jazyk Haskell v pluginu Taglist pro Vim

Ve Vimu jsem si oblíbil šikovnou utilitu (plugin) Taglist, která s pomocí programu ctags umí pro editovaný soubor (či explicitně zvolené soubory) zobrazit postranní okno se seznamem (stromem) symbolů, které se v daným souborech vyskytují, jako je např. seznam modulů, typů, funkcí atd. Ostatně mrkněte na screenshoty. Usnadňuje to orientaci a přechod mezi jednotlivými soubory. Tento plugin podporuje celou řadu jazyků (kolem 40), mezi které patří např. C, C++, Python, PHP atd. Bohužel jazyk Haskell není podporován a nepodařilo se mně najít kompletní postup, jak tuto podporu přidat (pouze střípky z diskusí), proto v tomto příspěvku přináším kompletní návod, jak tuto podporu přidat.

Kompletní postup je následující:

  • Stáhněte si zdrojové kódy programu ctags. Buď odtud, nebo, pokud používáte distribuci založenou na Debianu, tak použijte `apt-get source exuberant-ctags` (musíte mít ovšem v seznamu zdrojů pro apt odkazy na repozitáře se zdrojovými soubory, tj. kromě deb tam musíte mít i deb-src). Výhoda tohoto způsobu je ta, že se vám stáhnou zdrojové soubory daného programu a zároveň se automaticky provede patch změn, které do tohoto balíku přidává Debian.
  • Stáhněte si patch, který do tohoto programu přidává podporu pro jazyk Haskell (napsal Peter Strand). Neděste se toho, že tento patch je na jinou verzi ctags - funguje korektně i s poslední verzí (aktuálně 5.8). Aplikujte tento patch na stáhnuté zdrojové soubory programu ctags (`patch < ctags-5.5.4-haskell.diff` - je ovšem třeba manuálně zadat cesty k souborů, které nebudou sedět).
  • Zkompilujte a nainstalujte tento program (./configure, make a pod rootem make install - pokud vám budou chybět některé závilosti, tak je doinstalujte). Pokud ho již máte v systému nainstalovaný, tak originální verzi buď odstraňte, nebo vhodným nastavením $PATH zajistěte, aby se používala upravená verze programu.
  • Stáhněte si plugin Taglist a nainstalujte ho (rozbalením do $HOME/.vim/).
  • Stáhněte si můj patch, který do tohoto pluginu přidává podporu pro jazyk Haskell a aplikujte jej (`patch < taglist-haskell-support.patch`, se změnou cest k souborům).
  • Podle pokynů si tento plugin nastavte a vyzkoušejte - podpora pro jazyk Haskell by měla fungovat :).

Tento způsob je funkční, ale vzhledem k nutnosti patchovat ctags trošku těžkopádný. Bohužel se mi nepodařilo přijít na jiné řešení. Pokud někdo víte o nějakém jiném, tak se prosím podělte o svou zkušenost v komentáři pod příspěvkem. Díky.

Tagy: 

Přidat komentář