Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laughedelic/loadfiletorepl

🔁A Sublime plugin that provides native commands to load current source file into SublimeREPL
https://github.com/laughedelic/loadfiletorepl

plugin python repl sublime-package sublime-text

Last synced: about 2 months ago
JSON representation

🔁A Sublime plugin that provides native commands to load current source file into SublimeREPL

Awesome Lists containing this project

README

        

# LoadFileToRepl Sublime Text 2/3 plugin

[![](https://img.shields.io/packagecontrol/dt/Load%20file%20to%20REPL.svg)](https://packagecontrol.io/packages/Load%20file%20to%20REPL)
[![](https://img.shields.io/badge/license-LGPLv3-blue.svg)](https://www.tldrlegal.com/l/lgpl-3.0)
[![](https://img.shields.io/badge/contact-gitter_chat-dd1054.svg)](https://gitter.im/laughedelic/LoadFileToRepl)

## Description

This is a companion plugin for [SublimeREPL](http://github.com/wuub/SublimeREPL) providing a command to load current source file into according REPL. It just uses a REPL command, like `:load "foo.hs"` for Haskell, or `(load-file "foo.clj")` for Clojure and etc.

At the moment it supports load command for REPLs of the following languages (in alphabetic order):

| Language | REPL | Contributor | PR |
|:--------------|:-----------|:---------------------------------------------------|:---------------------------------------------------------------|
| Clojure | Leiningen | [@chrisalbright](https://github.com/chrisalbright) | [#6](https://github.com/laughedelic/LoadFileToRepl/pull/6) |
| Common Lisp | | [@cfmeyers](https://github.com/cfmeyers) | [#12](https://github.com/laughedelic/LoadFileToRepl/issues/12) |
| Elixir/Erlang | iex | [@yitzhakbg](https://github.com/yitzhakbg) | [#23](https://github.com/laughedelic/LoadFileToRepl/issues/23) |
| F# | fsi | [@garystanford](https://github.com/garystanford) | [#31](https://github.com/laughedelic/LoadFileToRepl/pull/31) |
| Groovy | groovysh | [@rcavalcanti](https://github.com/rcavalcanti) | [#15](https://github.com/laughedelic/LoadFileToRepl/pull/15) |
| Haskell | GHCi | | |
| Idris | | | |
| JavaScript | Node | [@jkroso](https://github.com/jkroso) | [#9](https://github.com/laughedelic/LoadFileToRepl/pull/9) |
| Lua | | [@mkottman](https://github.com/mkottman) | [#5](https://github.com/laughedelic/LoadFileToRepl/issues/5) |
| Matlab | | [@rowanc1](https://github.com/rowanc1) | [#17](https://github.com/laughedelic/LoadFileToRepl/pull/17) |
| OCaml | | [@himito](https://github.com/himito) | [#36](https://github.com/laughedelic/LoadFileToRepl/issues/36) |
| PowerShell | | [@mvoidex](https://github.com/mvoidex) | [#7](https://github.com/laughedelic/LoadFileToRepl/issues/7) |
| Prolog | SICStus | [@pedrokost](https://github.com/pedrokost) | [#21](https://github.com/laughedelic/LoadFileToRepl/pull/21) |
| Python | | | |
| R | | | |
| Racket | XREPL | [@keyanzhang](https://github.com/keyanzhang) | [#30](https://github.com/laughedelic/LoadFileToRepl/pull/30) |
| Ruby | | | |
| Scala | | | |
| Scheme | MIT Scheme | [@cyberzlex](https://github.com/cyberzlex) | [#19](https://github.com/laughedelic/LoadFileToRepl/pull/19) |
| Standard ML | SML | [@ActiveObject](https://github.com/ActiveObject) | [#8](https://github.com/laughedelic/LoadFileToRepl/pull/8) |

It's easy to extend this list. Pull-requests are welcome!

## Content

### Command `SublimeREPL: Load current file`

1. reveals REPL view or opens a new one according to the type of current file;
1. optionally places REPL in another layout group (to see results simultaneously with code);
1. optionally clears REPL before loading file;
1. saves current file;
1. and finally loads it into REPL, using according command;
1. optionally moves cursor to the REPL.

You can call it using

* Command Palette: P ➤ SublimeREPL: Load current file
* Menu: Tools ➤ SublimeREPL ➤ Load current file
* Hotkeys: see below.

### Settings:

Command `load_file_to_repl` has several options:

* `clear` — if `true`, clears REPL before loading file (`false` by default);
* `save_focus` — if `true`, saves focus on the source file, else moves cursor to REPL (`true` by default).
* `split` — if it has `"horizontally"` or `"vertically"` (default) value, it determines how window is splitted to show REPL in a new layout group. If it doesn't have one of these two values, or if window was already splitted, this option doesn't take effect — REPL is placed in a new tab or in the next layout group.

> **Note**: if you want another splitting behavior or more flexibility, take a look at the [Origamy plugin](https://github.com/SublimeText/Origami/).

You can find these options and their default values in the menu:

* Sublime Text ➤ Preferences ➤ Package Settings ➤ LoadFileToRepl ➤ Open Settings

or in Command Palette: `Preferences: LoadFileToRepl Settings`

### Key Bindings:

There are two hotkeys predefined:

* altenter — runs `load_file_to_repl` command with default options:

```json
{ "keys": ["super+enter"], "command": "load_file_to_repl" }
```

* altshiftenter — same, but clears REPL before loading file and moves cursor to REPL:

```json
{ "keys": ["super+shift+enter"],
"command": "load_file_to_repl",
"args": {
"clear": true,
"save_focus": false
}
}
```

You can find these bindings at

* Sublime Text ➤ Preferences ➤ Package Settings ➤ LoadFileToRepl ➤ Default Key Bindings

> **Note**: if you don't like them and want to turn off or make your own just set the `use_load_file_to_repl_keybindings` setting to false and reload Sublime.

## Installation

Using [Sublime Package Control](https://packagecontrol.io/):

> **Note**: you should install [SublimeREPL](http://github.com/wuub/SublimeREPL) plugin first

P ➤ Package Control: Install package ➤ LoadFileToRepl

Now restart Sublime Text to load the plugin settings. That's it!