LTerm_vi
: fix a downward-action issue when act in empty content
- Fix OCaml 5 compatibility (Thibaut Mattio, #110)
- Replace Camomile with uu* (Nicolás Ojeda Bär, ZAN DoYe, Thibaut Mattio, Jonah Beckford, #109)
-
Add support for OCaml 5.00 (@kit-ty-kate, #104)
-
The inputrc file has been moved from ~/.config/.lambda-term-inputrc to ~/.config/lambda-term-inputrc The old location will still be accepted until the next major version (@copy, #97)
LTerm_read_line
andLTerm_vi
:- vi visual mode
- register support
LTerm_read_line
: fix synchronization bug
-
LTerm_editor
: two editor modes: default and vi -
LTerm_read_line: class virtual ['a] term
:method editor_mode : LTerm_editor.mode signal
: the current editor modemethod set_editor_mode : LTerm_editor.mode -> unit
: set the current editor mode
Add initial support for vi editing mode to LTerm_read_line
:
- motions:
- h l 0 ^ $
- j k gg G
- w W e E b B ge gE
- f F t T
- aw iw aW iW
- include or inner ( ), [ ], { }, < >, ' and "
- generic quote: aq? iq? where ? could be any character
- bracket matching: jump back and forth between matched brakcets
- delete, change, yank with motions
- paste: p P
- line joining: J
Many thanks to @nilsbecker for his feature-request on vi edit mode and the helps during the development on this topic!
- `LTerm_read_line
- class virtual ['a] term
: the type signature of
method private execis changed from
method private exec : action list -> 'a Lwt.tto
?keys : LTerm_key.t list -> action list -> 'a loop_result Lwt.t`
- class virtual ['a] term
Since this is a private method and is intended to be used internally, the backward-compatibility will not be affected in most cases.
- Load inputrc file from ~/.config/.lambda-term-inputrc as per XDG conventions (@copy)
LTerm_edit: add horizontal scrolling support for wide width character
LTerm_history: catch and log Zed_string.Invalid
exception
- fix windows build (@db4, #72)
- expand zchar before writing to windows console (@kandu, #75)
- LTerm_draw: type
point
is redefined to useZed_char.t
as the essential element to support wide, combined glyph - functions and methods: change parameter type from
UChar.t
orZed_utf8.t
toZed_char.t
orZed_string.t
- LTerm_text
- function
of_string
is renamed toof_utf8
- function
of_string_maybe_invalid
is renamed toof_utf8_maybe_invalid
- the new
of_string
function is of typeZed_string.t -> t
- the new
of_string_maybe_invalid
function is of typeZed_string.t -> t
- function
- depend on zed 2
- Lterm_draw, LTerm_widget, LTerm_read_line refactored to support wide, combined glyphs
- add name to dune-project (Hannes Mehnert, #70)
- port to dune (Jérémie Dimino, #69)
- README: Add Travis badge (Kevin Ji, #66)
- Add travis config (Anurag Soni, #65)
- opam: update homepage, bug-reports and dev-repo fields (Jérémie Dimino)
- Make lambda-term compatible with Lwt 4 and Camomile 1 (#63, @ncihnegn)
-
Fix: copy & pasting the terminal output doesn't adds many spaces after the end of lines (#52, Deokhwan Kim, fixes ocaml-community/utop#186)
-
-safe-string compatibility (#54)
- Add history-search-prev and history-search-next (#47, Fabian Hemmer)
- Allow frame widgets to be labeled (#36, Andrew Ray)
- Add an alignment setting to label widgets (#36, Andrew Ray)
- Add scrollbar widgets (#33, Andrew Ray)
- Improve the
lambda-term-inputrc.5
man page (#41, Léon van Velzen) - Allow editor widgets to request a specific size and add a "double editor" example (#42, Fabian Bonk)
- Add
^
to the list of characters recognized in inputrc files (#46, github user zhenya1007) - Switch the build to jbuilder
- Drop compatibility with 4.01
- fix a race condition in
LTerm_read_line
. The race would often appear when copy&pasting
- add support for editing the current input with an external editor
(action
edit-with-external-editor
), bound toC-x C-e
by default - add forward search in history (action
next-search
), bound toM-s
by default - add support for mouse clicks on widgets (thanks to Andrew Ray)
- add support for looking up files in XDG locations (thanks to Genki Marshall)
- add repl example (Martin DeMello)
- add support for custom and local bindings
- remove use of deprecated Lwt functions
- add some iTerm2 keys
- fix some invalid use of react
- removed hard dependency on camlp4 (thanks to Peter Zotov)
- added styled formatters (thanks to Gabriel Radanne)
- doc fixes
- Extended widget support (thanks to Alexey Vyskubov):
- added modal frames
- added radiobutton and checkbutton
- Support for React 1.0.0
- fix OpenBSD builds
- workaround camomile raising the wrong exception for encoding failures
- add more default keybindings
- added
C-b
,C-f
,C-h
,M-p
,M-n
by default - fix a segfault when running utop in an emacs terminal buffer
- fix the bindings for
C-n
andC-p
- binds
C-h
to delete-prev-char
- better handling of newlines in read-line (avoid square selection bug)
- add a module for managing history
- use camomile for character encoding (remove iconv dependency)
- include generated tables for color mappings to speed up the build
- Windows fixes
- use unicode version of IO console functions
- better rendering method for read-line
- fix a blinking problem on OS-X
- bind the
kill-{prev,next}-word
editing actions - bind the undo action
- add doc for edition actions
- add
LTerm_key.to_string_compact
to print keys like emacs - use
Zed_input
for key bindings instead of hash tables - add support for macros
- add the break action to interrupt read-line
- add manual pages
- allow to get the current pending key sequence in read-line
- make the
LTerm_read_line.term
class more flexible