https://github.com/lisp-maintainers/cl-repl
A full-featured repl implementation designed to work with Roswell
https://github.com/lisp-maintainers/cl-repl
Last synced: 2 months ago
JSON representation
A full-featured repl implementation designed to work with Roswell
- Host: GitHub
- URL: https://github.com/lisp-maintainers/cl-repl
- Owner: lisp-maintainers
- License: gpl-3.0
- Fork: true (koji-kojiro/cl-repl)
- Created: 2023-07-15T19:44:14.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-26T13:52:41.000Z (about 1 year ago)
- Last Synced: 2024-03-26T14:53:33.401Z (about 1 year ago)
- Language: Common Lisp
- Size: 589 KB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- curated-awesome-cl - cl-repl - an ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. [GPL3][2]. With [colorthemes](https://github.com/koji-kojiro/lem-pygments-colorthemes). (REPLs ##)
README
# CL-REPL
[](https://github.com/lisp-maintainers/cl-repl/blob/master/LICENSE)
[](https://github.com/lisp-maintainers/cl-repl/releases)# **Warning; WIP**
The software is still alpha quality.
The functionalities are incomplete and may cause unkown bugs.**Table of Contents**
- [Overview](#overview)
- [Screenshots](#screenshots)
- [Installation](#installation)
- [Method 1: Download the binary](#method-1-download-the-binary)
- [Method 2: Rosswell](#method-2-rosswell)
- [Note about installation via Roswell](#note-about-installation-via-roswell)
- [Usage](#usage)
- [Configuration](#configuration)
- [Syntax highlighting](#syntax-highlighting)
- [execute shell](#execute-shell)
- [%edit magic](#edit-magic)
- [Contributing](#contributing)
- [Author](#author)
- [License](#license)# Overview
This project aims to provide a beginner-friendly REPL for Common Lisp with rich functionalities, such as IPython for Python.What this project tries to achieve are listed here.
- [x] powerful multiline editing with gnu readline.
- [x] saving and loading multiline history.
- [x] tab-completion of symbols.
- [x] simple installation instruction.
- [x] code editting with text editor.
- [ ] useful debugger & inspector. (incomplete)
- [x] syntax highlighting of input texts.
- [x] paren-matching.
- [ ] implementation independence: builds on SBCL and CCL. Segfaults on ECL.
- [ ] autoindentation# Screenshots
![]()
![]()
![]()
# Installation
## Method 1: Download the binary
Look up the latest release compatible with your OS under https://github.com/lisp-maintainers/cl-repl/releases.
If your choice of OS is not listed, you can help make lisping easier for others by contributing a PR. Take a look at the [.github/workflows/CI.yml](.github/workflows/CI.yml) for an inspiration. If it's unix-based, it might be as simple as adding a name to matrix -> OS.
## Method 2: Rosswell
CL-REPL can be installed via roswell as follows.
```
$ ros install lisp-maintainers/cl-repl
```Before installation, please ensure that gnu readline is installed.
If you use OSX, you might need to execute following command.```
$ brew link --force readline
```Also, ensure that your terminal support 256 colors.
### Note about installation via Roswell
If you installed roswell with normal configurations, cl-repl will be located in `~/.roswell/bin`.
To use cl-repl from the command line, please ensure the PATH variable includes `~/.roswell/bin`.# Usage
```
$ cl-repl
```or
```
$ ros repl
```Some useful magic commands are ready to use. To list available commands:
```
CL-USER> %help
```## Configuration
You can customize CL-REPL by editting `~/.replrc`. You can change appearance, add your own commands, and do anything you want when startup.
An example can be found [here](./replrc-example).## Syntax highlighting
Syntax highlighiting of input area is new in v0.5.0.
If you want to disable it, put the following in your `.replrc`.```
(disable-syntax)
```## execute shell
If the line starts with `!`, excute it as shell command, e.g. `!ls -a`.## %edit magic
Line editting in repl is sometimes painful. CL-REPL allows yot to edit code with your favorite text editor.```
CL-REPL> %edit
```CL-REPL invokes a text editor specified by `$EDITOR`.
After editting code, save and close it. Then repl will start to evaluate it.
If `` is not supplied, a temporary file will be created and deleted after evaluation.We've be sure the following editors work properly.
- vi & vim
- GNU Emacs
- joe's own editor
- Lem# Contributing
Don't hesitate to open issues or to send PRs.
Any suggestions are always welcomed.## Contributors
![]()
TANI Kojiro
![]()
Shubhamkar Ayare
![]()
Yi Cao
![]()
Eitaro Fukamachi
![]()
vindarel
![]()
Celaleddin Hidayetoğlu
![]()
Manoel V. Machado
![]()
Release-Candidate
![]()
Nikolai Matiushev
### List of Tasks
- [ ] (Complexity: high) Support for menu based completion: can we have an ipython-like dropdown menu based completion?
- [x] (Complexity: moderate) MacOS Binaries through Github Actions
- [ ] (Complexity: moderate) Linux Arm64 binaries through Travis or something else
- [ ] (Complexity: moderate) Windows Binaries
- [ ] (Complexity: moderate) Automating tests
- [ ] (Complexity: moderate) Add support for logs# Author
[TANI Kojiro](https://github.com/koji-kojiro) ([email protected])# Maintainer(s)
[Lisp Maintainers](https://github.com/lisp-maintainers)# License
CL-REPL is distributed under [GPLv3](./LICENSE).