mirror of https://github.com/Hilbis/Hilbish
123 lines
4.6 KiB
Markdown
123 lines
4.6 KiB
Markdown
## Changes
|
|
|
|
### 4.1.0
|
|
---------
|
|
|
|
Many new features and improvements in this version:
|
|
- New keybindings (working on Emacs, and in `Vim Insert Mode`):
|
|
* `CtrlW` to cut the previous word at the cursor
|
|
* `CtrlA` to go back to the beginning of the line
|
|
* `CtrlY` to paste the laste copy/paste buffer (see Registers)
|
|
* `CtrlU` to cut the whole line.
|
|
|
|
- More precise Vim iterations:
|
|
* Iterations can now be applied to some Vim actions (`y4w`, `d3b`)
|
|
|
|
- Implemented Vim registers:
|
|
* Yank/paste operations of any sort can occur and be assigned to registers.
|
|
* The default `""` register
|
|
* 10 numbered registers, to which bufffers are automatically added
|
|
* 26 lettered registers (lowercase), to which you can append with `"D` (D being the uppercase of the `"d` register)
|
|
* Triggered in Insert Mode with `Alt"` (buggy sometimes: goes back to Normal mode selecting a register, will have to fix this)
|
|
|
|
- Unified iterations and registers:
|
|
* To copy to the `d` register the next 4 words: `"d y4w`
|
|
* To append to this `d` register the cuttend end of line: `"D d$"`
|
|
* In this example, the `d` register buffer is also the buffer in the default register `""`
|
|
* You could either:
|
|
- Paste 3 times this buffer while in Normal mode: `3p`
|
|
- Paste the buffer once in Insert mode: `CtrlY`
|
|
|
|
- History completions:
|
|
* The binding for the alternative history changed to `AltR` (the normal remains `CtrlR`)
|
|
* By defaul the history filters only against the search pattern.
|
|
* If there are matches for this patten, the first occurence is insert (virtually)
|
|
* This is refreshed as the pattern changes
|
|
* `CtrlG` to exit the comps, while leaving the current candidate
|
|
* `CtrlC` to exit and delete the current candidate
|
|
|
|
- Completions:
|
|
* When a candidate is inserted virtually, `CtrlC` to abort both completions and the candidate
|
|
* Implemented global printing size: If the overall number of completions is biffer, will roll over them.
|
|
|
|
**Notes:**
|
|
* The `rl.Readline()` function dispatch has some big cases, maybe a bit of refactoring would be nice
|
|
* The way the buffer storing bytes from key strokes sometimes gives weird results (like `Alt"` for showing Vim registers)
|
|
* Some defer/cancel calls related to DelayedTabContext that should have been merged from lmorg/readline are still missing.
|
|
|
|
|
|
### 4.0.0-beta
|
|
---------
|
|
|
|
This version is the merge of [maxlandon/readline](https://github.com/maxlandon/readline)
|
|
and [lmorg/readline](https://github.com/lmorg/readline). Therefore it both integrates parts
|
|
from both libraries, but also adds a few features, with some API breaking changes (ex: completions),
|
|
thus the new 4.0.0 version. Remains a beta because maxlandon/readline code has not been thoroughly
|
|
test neither in nor of itself, and no more against `lmorg/murex`, it's main consumer until now.
|
|
|
|
#### Code
|
|
- Enhance delete/copy buffer in Vim mode
|
|
- DelayedTabContext now works with completion groups
|
|
|
|
#### Packages
|
|
- Added a `completers` package, with a default tab/hint/syntax completer working with
|
|
the [go-flags](https://github.com/jessevdk/go-flags) library.
|
|
- The `examples` package has been enhanced with a more complete -base- application code. See the wiki
|
|
|
|
#### Documentation
|
|
- Merged relevant parts of both READMEs
|
|
- Use documentation from maxlandon/readline
|
|
|
|
#### New features / bindings
|
|
- CtrlL now clears the screen and reprints the prompt
|
|
- Added evilsocket's tui colors/effects, for ease of use & integration with shell. Has not yet replaced the current `seqColor` variables everywhere though
|
|
|
|
#### Changes I'm not sure of
|
|
- is the function leftMost() in cursor.go useful ?
|
|
- is the function getCursorPos() in cursor.go useful ?
|
|
|
|
|
|
### 3.0.0
|
|
---------
|
|
|
|
- Added test (input line, prompt, correct refresh, etc)
|
|
- Added multiline support
|
|
- Added `DelayedTabContext` and `DelayedSyntaxWorker`
|
|
|
|
|
|
### 2.1.0
|
|
---------
|
|
|
|
Error returns from `readline` have been created as error a variable, which is
|
|
more idiomatic to Go than the err constants that existed previously. Currently
|
|
both are still available to use however I will be deprecating the the constants
|
|
in a latter release.
|
|
|
|
**Deprecated constants:**
|
|
```go
|
|
const (
|
|
// ErrCtrlC is returned when ctrl+c is pressed
|
|
ErrCtrlC = "Ctrl+C"
|
|
|
|
// ErrEOF is returned when ctrl+d is pressed
|
|
ErrEOF = "EOF"
|
|
)
|
|
```
|
|
|
|
**New error variables:**
|
|
```go
|
|
var (
|
|
// CtrlC is returned when ctrl+c is pressed
|
|
CtrlC = errors.New("Ctrl+C")
|
|
|
|
// EOF is returned when ctrl+d is pressed
|
|
// (this is actually the same value as io.EOF)
|
|
EOF = errors.New("EOF")
|
|
)
|
|
```
|
|
|
|
## Version Information
|
|
|
|
`readline`'s version numbers are based on Semantic Versioning. More details can
|
|
be found in the [README.md](README.md#version-information).
|