We now bypass all calls to pager when we are in
pager>
REPL mode, avoiding freezing the REPL section (Issue #40)
We can use the
@help
command on TerminalPager.jl for macros. (PR #39)Drop support for Julia 1.6.
Fix the precompilation in Julia v1.6. (PR #31)
TerminalPager.drop_preference!
should not expect the preference value, only its name.The error handling algorithm was improved to provide a result closer to that of the default REPL mode. (Issue #32)
We now manage the user preferences using the package Preferences.jl. Hence, we dropped all the previous functions to perform customization, leading to breaking changes.
^
is mapped to BOL (PR #28)The pager supports a new visual mode in which the user can select and copy lines.
The pager can use the alternate screen buffer, which preserves the current buffer content. This mode is now the default one when showing documentation using
@help
or in the REPL modepager?>
. (Issue #29)We use an intermediate buffer to draw the view, leading to less screen flickering.
The pre-compilation statements are generated by PrecompileTools.jl.
We now consider the entire display size when showing docstrings using
@help
.
The REPL mode
pager?
now uses the entire available display size to show the help, instead of fixing the number of columns to 80. (Issue #25)The keys
u/d
are now bound to:halfup
and:halfdown
. (PR #22)The key
<enter>
is now bound to:down
. (PR #24)
The keywords
freeze_rows
andfreeze_columns
were renamed tofrozen_rows
andfrozen_columns
.The keyword
draw_ruler
was renamed toshow_ruler
.The type of keystroke values are now
String
instead ofUnion{Symbol, String}
. This modification can break code that adds keybindings. However, it removed a lot of type instability and runtime dispatch, leading to a substantial performance gain.The function
set_highlighting
can be used to change the active and inactive search highlight decoration.Many performance improvements. The inner engine to create text views, called "recipes", was removed in favour of the algorithm in StringManipulation.jl (function
textview
).
The escaping was corrected in
@help
. (Issue #17)The text width was being computing without ignoring the decoration, leading to problems when accounting for the printable size of the text. (Issue #16)
The keyword
auto
can be used to show the pager only if the output does not fit the screen.TerminalPager.jl now has REPL modes.
New keybindings were defined:
<
,>
, andb
. (Issue #15)We can now define title rows, which will not move with the pager. (Issue #6)
Many performance issues were fixed, improving the initialization time among other things.
The macro
@dpr
is now deprecated. It was replaced by@help
.The macro
@stdout_to_pager
can now be called using the shorter name@out2pr
.
The macro
@stdout_to_pager
can be used to redirect thestdout
output to thepager
. (Issue #13)The macro
@dpr
can be to easily access the documentation of a function usingpager
. (Issue #14)A vertical ruler can now be drawn using the keybinding
r
.space
is now bind to:pagedown
as inless
.
When selecting the new number of columns and rows that will be frozen, hitting just enter uses the old value instead of crashing. (Issue #9)
Avoid a crash when searching something without matches after a search with matches. (Issue #12)
The function
TerminalPager.debug_keycode()
was added to help debugging key codes.The navigation can now be performed using a set of Vi key bindings. However, due to some conflicts, the entire navigation set based on Vi key bindings requires the environment key
PAGER_MODE=vi
. (Issue #7)ALT
is now treated likeMeta
, trying to equalize the experience among different operation systems. (Issue #8)If there is no match, the command line now shows
(no match found)
instead of(0 of 0 matches)
.ALT up
andALT down
now goes to the beginning and end of the text to keep consistency ofALT
modifier. (Issue #8)
The number of cropped lines is now correctly computed. (Issue #3)
The current position of the view is shown in the command line.
The key bindings can now be customized. (Issue #2)
The pager now supports searching strings.
The pager can now freeze lines and columns. (Issue #1)
The pager now supports features, which are a set of actions that can be disable when calling it. For example, the pager is used to show the help screen. However, in this case, we remove the
help
feature to avoid showing another help screen.A new rendering algorithm for better performance.
The new rendering algorithm does not add new lines when clearing the screen, but overwrite the current ones. (Issue #4)
The help screen now shows all the important information.
A lot of type instabilities were fixed, leading to a much better initialization time.
- Initial version.