Существуют ли исходные браузеры в стиле CScope для других языков, кроме C / C ++ в Windows? - PullRequest
14 голосов
/ 15 сентября 2008

Меня особенно интересуют инструменты, которые можно подключить к Vim, чтобы позволить просмотр исходного кода в стиле CScope (1-2 команды нажатия клавиш для поиска определений функций, вызывающих абонентов, глобальных символов и т. Д.) Для языков помимо C / C ++, таких как Java и C # (поскольку Vim и Cscope уже очень хорошо интегрируются для просмотра C / C ++). Меня не интересуют инструменты на основе IDE, поскольку я знаю, что Microsoft и другие поставщики уже занимаются этим пространством - я предпочитаю использовать Vim для редактирования и просмотра, но не знаю инструментов для C # и / или Java, которые дают мне та же мощность, что и у CScope.

Первоначальный ответ на этот вопрос включал указатель на приложение CSWrapper, которое, по-видимому, исправляет ошибку, с которой сталкиваются некоторые пользователи при интеграции Vim и CScope. Тем не менее, моя установка Vim / CScope работает нормально; Я просто пытаюсь расширить функциональность, чтобы использовать Vim для редактирования кода на других языках.

Ответы [ 5 ]

5 голосов
/ 26 августа 2011

Утверждение о том, что Cscope поддерживает Java, является чрезмерным натяжением. Кажется, что он обрабатывает метод как функцию, поэтому он не знает, что A.foo (), A.foo (Object) и B.foo () все разные. Это большая проблема с большой базой кода (включая сторонние библиотеки) со многими одноименными методами. (Я не смотрел на исходный код Cscope, но это то, что я нашел, пробуя последнюю версию Cscope 15.7a-3.3 от Debian unstable.)

Я попробовал Cscope в большом Java-проекте, и он мне не пригодился из-за этого ограничения. Грустно, что мы не можем получить быстрый ответ на такой базовый вопрос, как «кто вызывает этот метод», используя свободное программное обеспечение за пределами больших IDE, но мы также можем принять его. (Мне бы понравилось, если я ошибаюсь. Я прибегаю к хаки, такие как комментирование метода и перекомпиляция.)

4 голосов
/ 03 октября 2008

CScope работает на Java.

С http://cscope.sourceforge.net/cscope_vim_tutorial.html:

Хотя Cscope изначально предназначался только для использования с кодом C, он на самом деле очень гибкий инструмент, который хорошо работает с такими языками, как C ++ и Java. Вы можете думать об этом как об общей базе данных 'grep', с способность распознавать определенные дополнительные конструкции, такие как вызовы функций и определения переменных. По умолчанию Cscope анализирует только C, lex и файлы yacc (.c, .h, .l, .y) в текущем каталоге (и подкаталоги, если вы передаете флаг -R), и в настоящее время нет никакого способа чтобы изменить этот список расширений файлов (да, мы должны изменить это). Таким образом, вместо этого вы должны составить список файлов, которые вы хотите анализировать и называть его «cscope.files» (вы можете называть его как угодно если вы вызываете 'cscope -i foofile'). Простой (и очень гибкий) способ сделать это с помощью верной команды Unix 'find':

find . -name '*.java' > cscope.files

Теперь запустите 'cscope -b', чтобы перестроить базу данных (-b просто собирает базы данных без запуска Cscope GUI), и вы сможете просмотрите все символы в ваших файлах Java. Видимо есть люди там с помощью Cscope для просмотра и редактирования больших объемов файлы документации, показывающие, насколько гибок парсер Cscope.

3 голосов
/ 21 сентября 2015

Немного опоздал на вечеринку, но мой проект https://github.com/eapache/starscope/ предоставляет хорошую основу для создания баз данных cscope для большего количества языков. В настоящее время он поддерживает Ruby и Go, а Javascript находится в стадии разработки. Добавление Java / C # не должно быть таким сложным.

Редактировать: Javascript теперь полностью поддерживается.

0 голосов
/ 21 августа 2013

Я согласен с Эндрю - попытка получить иерархию вызовов для метода возвращает все вызовы с одним и тем же именем, даже если они относятся к другому классу.

Вы можете использовать Eclim для подключения Eclipse к VIM

http://eclim.org/

какие средства поддержки называют иерархией

http://eclim.org/vim/java/inspection.html#call-hierarchy

0 голосов
/ 15 сентября 2008

Это может быть то, что вы ищете:

http://www.vim.org/scripts/script.php?script_id=1783

Вы также можете имитировать некоторые функции CScope в своем собственном файле .vimrc, используя различные варианты map .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...