Há CScope-estilo de origem navegadores de outras linguagens além de C/C++ no Windows?

StackOverflow https://stackoverflow.com/questions/65456

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu estou especialmente interessada em ferramentas que podem ser ligados Vim para permitir o CScope-estilo de fonte de navegação (1-2 comandos de pressionamento de tecla para localizar definições de função, os chamadores, símbolos globais e assim por diante) para linguagens além de C/C++ tais como Java e C# (desde o Vim e o Cscope já integram-se muito bem para a navegação em C/C++).Eu não estou interessado em IDE baseado em ferramentas, uma vez que eu sei que a Microsoft e outros fornecedores já o endereço que o espaço -- eu prefiro usar o Vim para editar e navegar, mas mas não sei de ferramentas para C# e/ou Java, que me dão o mesmo poder que o CScope.

O original responder a esta pergunta incluído um ponteiro para o CSWrapper aplicativo que aparentemente corrige um erro que alguns usuários a experiência de integrar o Vim e o CScope.No entanto, a minha Vim/CScope de instalação funciona bem;Eu só estou tentando expandir a funcionalidade para permitir usar o Vim para editar o código em outros idiomas.

Foi útil?

Solução

CScope funciona com o Java.

A partir de http://cscope.sourceforge.net/cscope_vim_tutorial.html:

Embora Cscope foi originalmente destinado apenas para uso com o código C, que é na verdade, uma ferramenta muito flexível que funciona bem com linguagens como C++ e Java.Você pode pensar nele como um genérico 'grep' banco de dados, com o capacidade para reconhecer determinados outras construções, como chamadas de função e definições de variáveis.Por padrão Cscope só analisa C, lex, e yacc arquivos (.c .h .l, .y) no diretório atual (e subdiretórios, se você passar o sinalizador-R), e não há atualmente nenhuma maneira para alterar a lista de extensões de arquivo (sim, devemos mudar isso).Assim, em vez de você ter que fazer uma lista dos arquivos que você deseja analisar, e chamá-lo de " cscope.arquivos' (você pode chamá-lo de qualquer coisa que você quiser se você chamar 'cscope -eu foofile').Um fácil (e muito flexível) de forma a fazer isso é através do fiel Unix 'encontrar' comando:

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

Agora execute o "cscope -b' para reconstruir o banco de dados (a -b constrói a banco de dados sem precisar iniciar o Cscope GUI), e você vai ser capaz de procurar todos os símbolos em seus arquivos Java.Aparentemente existem pessoas lá fora, usando Cscope para navegar e editar grandes volumes de arquivos de documentação, que mostra o quão flexível Cscope do analisador.

Outras dicas

Alegando que o Cscope suporta Java é um extremo de estiramento.Parece tratar de um método como uma função, ela não tem ideia de que A. foo(), R. foo(Objeto) e B. foo() são todos diferentes.Este é um grande problema com uma grande base de código (incluindo bibliotecas de terceiros), com muitos métodos de mesmo nome.(Eu ainda não olhei para o Cscope de origem, mas isso é o que eu encontrei de tentar o mais recente Cscope, versão 15.7 a-3.3 do Debian unstable.)

Eu tentei Cscope em um grande projeto Java, e ele não foi útil para mim, devido a esta limitação.É triste que nós não podemos ter uma rápida resposta para uma pergunta como "quem chama esse método", usando software livre, fora das grandes IDEs, mas podemos aceitá-lo.(Eu adoraria se eu estou errado.Eu resort para hacks como comentar o método e recompilar.)

Um pouco tarde para a festa, mas o meu https://github.com/eapache/starscope/ projeto oferece uma framework para a geração de cscope bancos de dados para mais línguas.Atualmente ele oferece suporte a Ruby e Javascript está em andamento.Adicionar Java/C# não deve ser tão difícil.

Editar:Javascript agora é totalmente suportado.

Eu concordo com o Andrew, tentando obter uma hierarquia de chamada para um método que retorna todas as chamadas de mesmo nome, mesmo se eles são de uma classe diferente.

Você pode usar Eclim o plug do Eclipse para o VIM

http://eclim.org/

que supportrs hierarquia de chamada

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

Este pode ser o que você está procurando:

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

Você também pode imitar alguns CScope funcionalidade em seu próprio .vimrc arquivo usando os vários tipos de mapa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top