Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/disnet/codefellow
Scala development tool for Vim and Sbt
https://github.com/disnet/codefellow
Last synced: about 1 month ago
JSON representation
Scala development tool for Vim and Sbt
- Host: GitHub
- URL: https://github.com/disnet/codefellow
- Owner: disnet
- Created: 2010-09-02T06:03:57.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2010-07-22T16:44:57.000Z (over 14 years ago)
- Last Synced: 2023-04-10T22:39:25.450Z (over 1 year ago)
- Language: Java
- Homepage: http://github.com/romanroe/codefellow
- Size: 228 KB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.textile
Awesome Lists containing this project
README
h1. CodeFellow
*Scala development tool for Vim and Sbt*
*Note:* CodeFellow is still in _alpha_ state!
h2. Features
The following features are already implemented in Vim:
* Member completion
* Scope completion
* Get type information for expressions
* Compiler errors are shown in Vim (quickfix + markers)
* Support for multi-module builds (each module will have it's own classpath)Planned:
* Jump to definition
* Automatically add '(' and ')' based on the method return type and parameters
* Completion for named arguments in method invocations
* Organize imports (like in Eclipse)h2. Requirements
* Scala 2.8
* Sbt project
* Vim (tested with version 7.2)
** Compiled with Python support
** (Optional) Compiled with +balloon_eval for mouse hover type informationh2. Installation
1. Build CodeFellow
bc. git clone git://github.com/romanroe/codefellow.git
cd codefellow
sbt update publish-local2. Install the Vim plugin
bc. cp <>/vim/plugin/codefellow.vim ~/.vim/plugin/
3. Add the CodeFellow plugin to your project (project/plugins/Plugins.scala)
bc. import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
val codefellow = "de.tuxed" % "codefellow-plugin" % "0.3"
}4. Mixin the CodeFellow trait to your project definition
bc. class YourProject(info: ProjectInfo)
extends ParentProject(info)
with de.tuxed.codefellow.plugin.CodeFellowPlugin {
...
}5. Run the plugin:
bc. sbt codefellow
6. Start the CodeFellow deamon from your project root directory (this step will get merged with the above one in the future)
bc. java -cp >/project/boot/scala-2.8.0.RC5/lib/scala-library.jar:\
>/project/boot/scala-2.8.0.RC5/lib/scala-compiler.jar:\
>/codefellow-core/target/scala_2.8.0.RC5/classes \
de.tuxed.codefellow.Launch7. Start Vim and open a Scala file that belongs to your project
h2. Usage
*Note:* The first invocation of a CodeFellow feature might take a couple of seconds since the compiler daemon for each module in your build will be started on demand.
8. Customize connection settings. see vim/autoload/codefellow.vim
section "connection to server / optional server startup"9. debugging:
execute:
set this in your ~/.vimrc:
let g:codefellow_verbose = 1
py doDebug=True
also watch the logfile: g:codefellow_server_logfile
g:codefellow_last_exception contains the text of the last received failureThe following key bindings are available:
|_. Key |_. Mode |_. Description |
|Ctrl+s Ctrl+m | insert mode | Activate member completion function and trigger omni completion (triggers buffer save) |
|Ctrl+s Ctrl+s | insert mode | Activate scope completion function and trigger omni completion (triggers buffer save) |
| F9 | command mode | Compile the current file and show compiler errors |
|Ctrl+s Ctrl+t or F1 | command mode | Print type information of expression under cursor |h2. Screencast
Check out the "screencast":http://github.com/downloads/romanroe/codefellow/codefellow_sc_1d.avi to see CodeFellow in action!
h2. Contributions
Thanks a lot to "Marc Weber":http://github.com/MarcWeber and "Eric Sessoms":http://github.com/esessoms !
h2. Acknowledgement
* Almost all functionality for the code completion is already implemented in the Scala compiler. CodeFellow would not be possible without the work of the Scala compiler team!
* I learned most about the Scala compiler by looking at and using the source code from "Aemon Cannon's":http://github.com/aemoncannon emacs mode "ensime":http://github.com/aemoncannon/ensime. Thank you!