LINUX.ORG.RU

emacs перемещение по исходному коду


0

0

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

Знаю о существовании etags, semantic-ia-fast-jump и окошка в ecb со списком функций. Всё перечисленное не смог найти удобным, расскажите чем пользуетесь и как оно у вас настроено.

Список интересующих языков: JavaScript, C++, Perl, PHP, LISP, Ruby.

★★

Для лиспа SLIME очень хорошо работает.

dmitry_vk ★★★ ()
Ответ на: комментарий от Reaper

senator - semantic navigator. Может прыгать по тегам, если напишеш свою грамматику, можеш двигаться прямо по синтаксическому дереву(в данный момент пишу грамматику для хаскеля, хочу как раз это реализовать). Хотя для обычных языков обычно тегами считаются только определения функций, потому там не особо это поможет. Можеш модифицировать грамматику что бы более точно парсила.

Вобще движение по дереву представляется мне наиболее удобным(пример : один стейтмент вперед, на один контекст выше, и.т.п.)

recon88 ()
Ответ на: комментарий от recon88

а бета-версии грамматики доступны? я собирался писать для хаскеля, но пока руки не доходили... Там по хорошему, надо бы продумать втаскивание информации о системных библиотеках и библиотеках, поставленных через cabal

ott ★★★★★ ()
Ответ на: комментарий от ott

Для системных библиотек думаю можно использовать hoogle.

Грамматика есть только на моем компьютере, пока что ранняя альфа, пишу её только 3 дня, но уже парсит большинство конструкций. Основываюсь на упрощении грамматики из Haskell report, однако следую не очень близко, некоторые вещи упрощаю. Еще сейчас там много shift/reduce и reduce/reduce конфликтов(хотя все парсится корректно), если есть желание поправлять могу залить куда-то.

Также планирую написать полноценный парсер и использовать его для symref, что бы можно было обрабатывать hidden и переопределения функций, хотя Эрик советует основываться на внешних программах, но помоему это будет странно, если в наличии есть парсер. В общем планирую сделать полноценную поддержку haskell, включая cabal проекты(через EDE).

Если вам не противоречит мое видение проекта можно организовать совместную разработку.

recon88 ()
Ответ на: комментарий от ott

>gnu global

Global позволяет по строке Class.Method1() перейти на определение? Или придется выбирать из всех Method1 вообще в проекте, включая те, что из других классов, функции и т. д.?

ipc ()
Ответ на: комментарий от recon88

мне очень нравится агенда (у меня правда сейчас не особо много времени). Может вы сделаете анонс в cedet-devel - мне кажется, что народ будет заинтересован, и может подскажет что полезное. Если есть возможность, расшарьте исходники - будет интересно

насчет системных библиотек - мне кажется, что можно написать скрипт, который будет генерить semanticdb для нужной версии ghc, например (и можно поставлять готовые базы).

ott ★★★★★ ()
Ответ на: комментарий от ott

Почему я предлагаю использовать hoogle : semanticdb очень тормозная штука, задержка в обычных С проектах составляется довольно ощутимое время, к тому же придется парсить устанавливаемые библиотеки. hoogle - дает очень быстрые ответы, хотя системными библиотеками плотно еще не занимался, пока что пытаюсь сделать автокомплит для локальных функций и qualified модулей(что бы было видно хороший результат:)).

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

Кстати странно что никто еще не написал, на первые результаты(top-level declarations, imports, module definitions) у меня ушел один день, после чего semantic все автоматически подхватил и стал делать по ним автокомплит, и навигацию!

Анонс планирую сделать когда будет более-менее адекватная грамматика(и исчезнет огромное количество конфликтов).

recon88 ()
Ответ на: комментарий от recon88

ага, я посмотрю когда будет время...

насчет hoogle vs. semanticdb - это можно сделать конфигурабельным, поскольку иногда хугл просто не доступен, если не дома/в оффисе

ott ★★★★★ ()
Ответ на: комментарий от recon88

BTW - есть git mirror репозитория cedet - git://randomsample.de/cedet.git. Он актуальный и регулярно обновляется - может стоит сразу в него интегрировать поддержку haskell?

ott ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.