diff --git a/README.md b/README.md index 19a23ba..b6cbee6 100644 --- a/README.md +++ b/README.md @@ -9,21 +9,37 @@ line editors such as linenoise (see rdstdin in the nim standard library) or nimline (https://github.com/h3rald/nimline). Currently you probably want to use either of those because this is a wip. -# Building - -Have nim (tested on 1.4.2, x86_64 gnu/linux) installed. +# Installation ``` git clone https://github.com/japl-lang/jale cd jale -nim c main -./main +nimble install ``` -You should enter a temporary testing prompt, which you -can quit with ctrl+c. -Pressing enter when the last line is empty submits -the output. +# Checking the examples out + +Building the examples + +``` +nimble examples +``` + +Checking the sample editor out. Quit with ctrl+c, save with ctrl+s. + +``` +examples/editor +# or windows: +.\examples\editor.exe +``` + +Checking the interactive prompt out. Move between lines using ctrl+up/down. Create new lines with ctrl+down on the last line. ctrl+page up/down also works. + +``` +examples/interactive_history +# or windows: +.\examples\interactive_history.exe +``` # Features @@ -32,45 +48,7 @@ the output. - very customizable (even inserting characters is a keybinding that's optional) - plugin system based - history - -# Example usage - -```nim -# for now, from the same directory where it's cloned -# import the line editor -import editor -# import the default keybindings for basic stuff -# like arrow key movement or inserting characters -import plugin/defaults -# import helper templates for adding custom key or -# event bindings -import templates - -# create the line editor -let e = newLineEditor() -# set its prompt to something -e.prompt = "> " -# add the default keybindings -e.populateDefaults() - -var printOutput = true - -# very weird use case, but if ctrl+b is pressed during reading, don't -# print the output -e.bindKey("ctrl+b"): - printOutput = false - -let input = e.read() -if printOutput: - echo "output:" - echo input -``` - -Also see examples folder if the above example does not suffice, -and look at defaults.nim for many binding examples. -Look at multiline.nim's procs and editor.nim's -LineEditor type for an "API". It's wip, docs will -improve if it ever gets more stable. +- horizontal scrolling # Missing features @@ -79,5 +57,5 @@ Note: they won't be missing forever hopefully. - No utf-8 - No tab autocompletion support - No syntax highlighting support -- Windows keybindings not finished, windows was not tested yet +- Windows output still really unstable/untested in depth