package linenoise

  1. Overview
  2. Docs
Simple readline like functionality with nice hints feature.

Install

Dune Dependency

Authors

Maintainers

Sources

v1.0.0.tar.gz
md5=ea88336d4231b02c1ae4ed142c66be2c

Description

These are self contained OCaml bindings to linenoise, no system libraries needed at all.

Here's a simple program:

let rec user_input prompt cb = match LNoise.linenoise prompt with | None -> () | Some v -> cb v; user_input prompt cb

let () = LNoise.set_hints_callback (fun line -> if line <> "git remote add " then None else Some (" ", LNoise.Yellow, true) ); LNoise.history_load ~filename:"history.txt" |> ignore; LNoise.history_set ~max_length:100 |> ignore; LNoise.set_completion_callback begin fun line_so_far ln_completions -> if line_so_far <> "" && line_so_far.[0] = 'h' then ["Hey"; "Howard"; "Hughes";"Hocus"] |> List.iter (LNoise.add_completion ln_completions); end; ["These are OCaml bindings to linenoise"; "get tab completion with , type h then hit "; "type quit to exit gracefully"; "By Edgar Aroutiounian\n"] |> List.iter print_endline; (fun from_user -> if from_user = "quit" then exit 0; LNoise.history_add from_user |> ignore; LNoise.history_save ~filename:"history.txt" |> ignore; Printf.sprintf "Got: %s" from_user |> print_endline ) |> user_input "test_program> "

and compile with: $ ocamlfind ocamlopt ex.ml -package linenoise -linkpkg -o T

Published: 26 Oct 2016

Dependencies (3)

  1. ocamlfind build
  2. oasis build & >= "0.4"
  3. ocaml >= "4.03.0"

Dev Dependencies

None

Used by (6)

  1. alba >= "0.4.1"
  2. asli
  3. beluga = "1.0"
  4. links >= "0.7"
  5. ocamline >= "1.2"
  6. ogen = "0.1.2" | >= "0.1.4"

Conflicts

None