2010-08-13 11 views
16

Sto lavorando in Java, C, Perl e Bash (e un piccolo pitone) su un progetto che funziona tutti insieme (principalmente tramite interfacce RESTfull) e sto cercando un IDE adatto alla programmazione di Polyglot?IDE per la programmazione Polyglot

Cosa IDE posso usare che ha:

  • salto per definizione
  • gerarchia di richiamo
  • l'evidenziazione della sintassi

attraverso almeno nelle lingue:

  • Java
  • C
  • Perl

tutti dalla all'interno dello stesso progetto?

ps: non mi preoccupo troppo di costruire il progetto.

pps: È importante che il tempo di commutazione del contesto sia minimo, che le ricerche possano attraversare le lingue e che la gerarchia di chiamate e il salto a definizione funzionino in tutto il codice visibile per tutto il tempo. diversi editori hanno diversi concetti di "progetto" e non ne sono preoccupato finché questi criteri saranno soddisfatti.

+1

Lei non ha specificato quale sistema operativo che si sta utilizzando. – Ether

+0

Immagino che notapad ++ non contenga ... –

+0

Posso usare qualsiasi sistema operativo che si adatti all'IDE. La modifica di più lingue in un progetto è molto importante. tutto il resto è negoziabile. –

risposta

0

Io uso BBEdit. Soddisfa tutti i tuoi requisiti tranne la gerarchia delle chiamate.

6

Java e C sono pienamente supportati da Eclipse. C'è anche un plugin di terze parti per Perl chiamato EPIC. È ancora in beta, ma potrebbe essere sufficiente per soddisfare le tue esigenze.

Come si crea un progetto in Eclipse in grado di indicizzare sia il codice java che il codice C nello stesso progetto?

Questa domanda più o meno affronta il problema: How to change an Eclipse default project into a Java project

In sostanza, aprire il file .project e aggiungere i costruttori necessarie e nature.

Un'altra alternativa è dividere il lavoro in progetti Eclipse separati. Tutti gli elementi di indicizzazione dovrebbero funzionare correttamente su più progetti in un'area di lavoro.

+0

Come si crea un progetto in Eclipse che può indicizzare sia il codice java che il codice C nello stesso progetto? –

+0

@Arthur Non è necessario creare un progetto per tutto. È possibile creare ad esempio un progetto Java che dipende dal progetto C, tutto in uno spazio di lavoro. Finché gli artefatti di build depositati correttamente, –

+0

eclissi sembra non voler creare più progetti che puntano alla stessa fonte. quindi non posso creare "un progetto per lingua" come questo –

1

Se stai lavorando su * nix, andrei con emacs o xemacs, con le estensioni appropriate faranno tutto quello che vuoi. Su Windows non sono così buoni, ma sono abbastanza utilizzabili.

+0

quale estensione offre jump-to-definition e call-hierarchy? –

+0

per quali lingue sono disponibili queste funzionalità? –

+0

'M-.'o' M-x find-tag' darà il salto alla funzionalità di definizione. – msandiford

4

Dai un'occhiata a Emacs con lo Emacs Code Browser.

Ecco alcune caratteristiche:

  • Un albero di directory,
  • una lista di file sorgenti nella directory corrente (con pieno sostegno e la visualizzazione del VC-stato ),
  • a elenco di funzioni/classi/metodi/... nel file corrente, (ECB usa CEDET-semantic, o Imenu, o etags, per ottenere questo elenco in modo che tutte le lingue supportate da uno qualsiasi di questi strumenti siano automaticamente supportate anche dalla BCE)
  • una cronologia di r ecently visitato file (raggruppabili da diversi criteri),
  • un ECB-finestra diretta e auto-aggiornato per il semantico-analizzatore per alcuni intellisense,
  • speed-bar e
  • uscita dalla compilazione (finestra compilation) e altre modalità come help, grep ecc. o qualunque sia l'utente che deve essere visualizzato in questa finestra .

alt text http://psilva.ath.cx/Screenshot.jpg

Insieme con le modalità appropriate di modifica lingua (che esistono per i vostri lingue richieste, molto probabilmente tutti installati di default con Emacs: cperl, jde e cc-mode), credo che questo potrebbe essere una buona scelta .

+1

Il lato CEDET/Semantic è molto più importante del browser di codice, IMO. Per me, la cosa più importante è il completamento automatico _smart_, saltare a definizioni/file e incollare nel codice 'snippet' con yasnippet. Ma sì, Emacs oscilla. – Jyaan

+0

Stampa una struttura di chiamata di funzione? –

+0

Non ho trovato nulla di integrato, no. Tuttavia, io uso [simple-call-tree.el] (http://www.emacswiki.org/emacs/simple-call-tree.el). Funziona benissimo per i miei usi, ma potrebbe essere più 'hacker' di quanto volessi originariamente, con tutte le cose che parlano in inglese * intelli * che fluttuano negli altri post e nei commenti. –

2

se state pensando di prodotti commerciali Dai un'occhiata al IntelliJ IDEA 9.

+0

Sto considerando qualsiasi cosa su qualsiasi sistema operativo che faccia andare via questo dolore. –