Podpora pro jazyk Haskell v pluginu Taglist pro Vim

Od Petr Zemek, 2009-08-03

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
Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtrované HTML (využíváno)

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <table>
  • Zvýraznění syntaxe kódu lze povolit přes následující značky: <code>, <blockcode>, <bash>, <c>, <cpp>, <haskell>, <html>, <java>, <javascript>, <latex>, <perl>, <php>, <python>, <ruby>, <rust>, <sql>, <text>, <vim>, <xml>, <yaml>.
  • Řádky a odstavce se zalomí automaticky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
CAPTCHA
2 + 2 =
Vyřešte tento jednoduchý matematický příklad a vložte výsledek. Např. pro 1+3 vložte 4.
Nějak se mi tady rozmohl spam, takže poprosím o ověření.