All Projects → AmokHuginnsson → Replxx

AmokHuginnsson / Replxx

Licence: other
A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed.

Projects that are alternatives of or similar to Replxx

gdb-dashboard
Modular visual interface for GDB in Python
Stars: ✭ 8,699 (+1850.45%)
Mutual labels:  syntax-highlighting, ansi
Imguicolortextedit
Colorizing text editor for ImGui
Stars: ✭ 772 (+73.09%)
Mutual labels:  syntax-highlighting, utf-8
Kibi
A text editor in ≤1024 lines of code, written in Rust
Stars: ✭ 522 (+17.04%)
Mutual labels:  syntax-highlighting, utf-8
PrettyPrompt
A cross-platform command line prompt library that provides syntax highlighting, autocompletion, history and multi-line input.
Stars: ✭ 45 (-89.91%)
Mutual labels:  syntax-highlighting, readline
Tomlplusplus
Header-only TOML config file parser and serializer for C++17 (and later!).
Stars: ✭ 403 (-9.64%)
Mutual labels:  utf-8
Console
The Hoa\Console library.
Stars: ✭ 354 (-20.63%)
Mutual labels:  readline
Bstr
A string type for Rust that is not required to be valid UTF-8.
Stars: ✭ 348 (-21.97%)
Mutual labels:  utf-8
Nano Highlight
a spiffy collection of nano syntax highlighting files
Stars: ✭ 344 (-22.87%)
Mutual labels:  syntax-highlighting
Color
Color package for Go (golang)
Stars: ✭ 4,904 (+999.55%)
Mutual labels:  ansi
Bearparser
Portable Executable parsing library (from PE-bear)
Stars: ✭ 415 (-6.95%)
Mutual labels:  multiplatform
Mordant
Full-featured text styling for Kotlin command-line applications
Stars: ✭ 382 (-14.35%)
Mutual labels:  ansi
Manifest Tool
Manifest tool for manifest list object creation/query
Stars: ✭ 355 (-20.4%)
Mutual labels:  multiplatform
Asm Dude
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
Stars: ✭ 3,898 (+773.99%)
Mutual labels:  syntax-highlighting
Kissme
Kissme: Kotlin Secure Storage Multiplatform
Stars: ✭ 351 (-21.3%)
Mutual labels:  multiplatform
Code Blocks
Syntax highlighting for Google Docs
Stars: ✭ 422 (-5.38%)
Mutual labels:  syntax-highlighting
Hues
Colored terminal text made easy for Python and happiness.
Stars: ✭ 345 (-22.65%)
Mutual labels:  ansi
Enlighterjs
🔆 an open source syntax highlighter written in pure javascript
Stars: ✭ 379 (-15.02%)
Mutual labels:  syntax-highlighting
Rainbow levels.vim
A different approach to code highlighting.
Stars: ✭ 415 (-6.95%)
Mutual labels:  syntax-highlighting
Packagedev
Tools to ease the creation of snippets, syntax definitions, etc. for Sublime Text.
Stars: ✭ 378 (-15.25%)
Mutual labels:  syntax-highlighting
Highlight.js
JavaScript syntax highlighter with language auto-detection and zero dependencies.
Stars: ✭ 19,312 (+4230.04%)
Mutual labels:  syntax-highlighting

Read Evaluate Print Loop ++

demo

Build Status

A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. Unlike GNU readline, which is GPL, this library uses a BSD license and can be used in any kind of program.

Origin

This replxx implementation is based on the work by ArangoDB Team and Salvatore Sanfilippo and 10gen Inc. The goal is to create a zero-config, BSD licensed, readline replacement usable in Apache2 or BSD licensed programs.

Features

  • single-line and multi-line editing mode with the usual key bindings implemented
  • history handling
  • completion
  • syntax highlighting
  • hints
  • BSD license source code
  • Only uses a subset of VT100 escapes (ANSI.SYS compatible)
  • UTF8 aware
  • support for Linux, MacOS and Windows

It deviates from Salvatore's original goal to have a minimal readline replacement for the sake of supporting UTF8 and Windows. It deviates from 10gen Inc.'s goal to create a C++ interface to linenoise. This library uses C++ internally, but to the user it provides a pure C interface that is compatible with the original linenoise API. C interface.

Requirements

To build this library, you will need a C++11-enabled compiler and some recent version of CMake.

Build instructions

*nix

  1. Create a build directory
mkdir -p build && cd build
  1. Build the library
cmake -DCMAKE_BUILD_TYPE=Release .. && make
  1. Install the library at the default target location
sudo make install

The default installation location can be adjusted by setting the DESTDIR variable when invoking make install:

make DESTDIR=/tmp install

Windows

  1. Create a build directory in MS-DOS command prompt
md build
cd build
  1. Generate Visual Studio solution file with cmake
  • 32 bit:
cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE=Release ..
  • 64 bit:
cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE=Release ..
  1. Open the generated file replxx.sln in the build subdirectory with Visual Studio.

Tested with...

  • Linux text only console ($TERM = linux)
  • Linux KDE terminal application ($TERM = xterm)
  • Linux xterm ($TERM = xterm)
  • Linux Buildroot ($TERM = vt100)
  • Mac OS X iTerm ($TERM = xterm)
  • Mac OS X default Terminal.app ($TERM = xterm)
  • OpenBSD 4.5 through an OSX Terminal.app ($TERM = screen)
  • IBM AIX 6.1
  • FreeBSD xterm ($TERM = xterm)
  • ANSI.SYS
  • Emacs comint mode ($TERM = dumb)
  • Windows

Please test it everywhere you can and report back!

Let's push this forward!

Patches should be provided in the respect of linenoise sensibility for small and easy to understand code that and the license restrictions. Extensions must be submitted under a BSD license-style. A contributor license is required for contributions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].