2010-12-19 15 views

Respuesta

31

le sugiero que trate SBT - http://code.google.com/p/simple-build-tool/

Usted Probablemente querrá algunas conchas abiertas y tendrá que rebotar entre vim y su sesión SBT, pero en general SBT optimiza el desarrollo de Scala hasta el punto en que se siente como un lenguaje interpretado.Algunas sugerencias útiles de SBT:

Ejecute sbt en el shell en el directorio de su proyecto para crear automáticamente la estructura de su proyecto. Para comenzar rápidamente, edite un archivo en ese proyecto llamado src/main/scala/MyFile.scala

En un shell sbt, ejecute ~ compile para detectar y compilar continuamente los cambios a medida que los realiza.

En otro shell sbt, ejecute 'console'. Esto le da un Scala REPL normal con su proyecto y sus dependencias ya en el CLASSPATH.

Desde ese shell scala que puede ejecutar: cargue para cargar su archivo Scala y ejecútelo. O simplemente puede importar y crear instancias de clases y funciones de llamada definidas en su código Scala para probar la funcionalidad. Cuando realice cambios en el archivo,: la reproducción en REPL cargará esos cambios y ejecutará nuevamente todos los comandos ingresados.

Esta configuración funciona muy bien para el rápido desarrollo web en conjunto con Scalatra. Desde sbt puede implementar y ejecutar directamente su aplicación web con 'jetty-run' y luego detectar, recompilar e implementar cambios automáticamente con ~ prepare-webapp. Luego, mantén un navegador abierto y observa los cambios a medida que los haces. Una buena guía de introducción para esto está aquí: http://blog.everythings-beta.com/?p=430 Puede tener una aplicación web ejecutándose en 5 minutos más o menos.

+0

gracias. SBT suena muy bien :) – Freewind

+1

+1 para la consola :-) –

0

¿Podría acortarlo hasta una línea escribiendo un guión?

por lo que en el mismo directorio, se podría hacer algo como

scalac xxx.scala Scala xxx

y desde vim haces

: ./ scriptName

Hacer asegúrese de que sea ejecutable en primer lugar con chmod

+0

espero que pueda ser más fácil, por ejemplo, Presiono 'F6', el código del archivo actual se está compilando y ejecutando. No importa cuál sea el nombre del archivo. – Freewind

+1

Siempre pensé que para eso eran los IDE. Estoy seguro de que podría encontrar un IDE y configurar el botón "compilar y ejecutar" para iniciar scalac y scala – Realn0whereman

+0

Eclipse tiene un complemento para scala, pero es muy lento. Pero si uso Eclipse para ejecutar scala sin el complemento scala, eso me hace sentir extraño :( – Freewind

8

yo sugeriría que utilice SBT hacer las cosas en una cáscara & modificar el archivo scala en vim. Necesita especificar un método mainClass en su archivo de proyecto. Detalles here.

$ sbt 
> ~ run 
1. Waiting for source changes... (press enter to interrupt) 

Al guardar el archivo Scala en la sesión de vim, SBT intentará invocar su MainClass.

3

Los mapas son útiles aquí. No sé nada sobre scala, pero p. el comando

: nmap < F6>: prueba de eco < CR>

Se llama al comando shell echo test cada vez que aplica F6 en el modo normal

Estoy seguro de que puede adaptarse a tus necesidades Ingrese .vimrc si lo quiere permanente (lo que probablemente haga). Más información se puede encontrar aquí, si usted está en todo editor de secuencias de comandos: http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.html

P. S. Se olvidó de mencionar que el carácter % se expande al archivo actual en un comando de shell. Es posible que desee algo así como :! scala %<CR>


EDITAR:

Este es un problema más complicado de lo que pensaba a primera vista (estoy acostumbrado a trabajar con lenguajes interpretados, donde compilación de ejecución es un solo comando). De todos modos, si realmente todavía quiere funcionalidad compilar y ejecutar una sola tecla, pruebe esta secuencia de comandos rápida (pegarlo en algún lugar de su archivo .vimrc y reiniciar vim):

function! CompileAndRunScala() 
    w "save current file 
    let l:compiler_output = system('scalac ' . expand('%:p')) 
    " Runs scalac on current filename (absolute path) 
    if v:shell_error "Gets last shell error code (0 means okay, anything else is error) 
     echo 'Compile errors!' 
     echo l:compiler_output 
    else 
     echo system('scala ' . expand('%:r')) 
     " Runs scala on current file name with extension stripped (also absolute path) 
    endif 
endfunction 
nmap <F6> :call CompileAndRunScala()<CR> 
+0

muchas gracias! – Freewind

+0

@Freewind, esto es un poco más fácil y más potente cuando se integra con el comando ': make' de vim - ver mi post. – schmmd

1

Yo mismo tipo de Nunca se alejó de make para que pueda compilar el programa con :make °target° limpio y sencillo.

7

Probablemente sea mejor utilizar un administrador de compilación. Sin embargo, hay casos en que esto es útil, particularmente si solo desea ejecutar un solo archivo con el intérprete scala. En vim, % coincide con el archivo actual. Si desea ejecutar a presentar utilizando el archivo actual en el intérprete Scala, podría ejecutar:

:!scala % 

Si se va a hacer esto mucho, usted podría considerar la asignación de un comando para esto.

map <F5> :!scala %<CR> 

Si desea que esta encuadernación esté disponible solo en archivos scala, intente lo siguiente. Esto puede requerir que tenga el scala vim syntax files.

au FileType scala map <F5> :!scala % 

De forma similar, para compilar archivos puede ejecutar lo siguiente.

:!scalac % 

Si desea ejecutar su clase compilada, es más difícil porque hay que conocer la ruta de clases. %:r podría ser un comienzo; es el archivo actual menos la extensión.

Una solución más avanzada que la anterior sería utilizar el intérprete/compilador scala como el sistema de compilación para vim usando :make. De esta forma puede navegar a través de los errores dentro de vim usando quickfix. Encontrará un couple of compiler files I wrote helpful. Puede copiarlos al ~/.vim/compiler/ y luego configurar el compilador con vim (:compiler scalai).

Puede encontrar a blog post of mine útil como cubre el desarrollo en scala usando vim. Cubre una buena forma de combinar scala con compilación continua en un administrador de compilación.

0

Después de haber instalado SBT como ya se ha sugerido, considere esto desde dentro de una sesión editor Vim,

:!sbt run 

Además, para la elaboración o envasado,

:!sbt compile 
:!sbt package 
Cuestiones relacionadas