- Use Protoblast methods to get an object's symbols & getters
- Fix package.json
- Remove usage of bound
startsWith
method - Make
ArgsLogLine#dissect()
clear the maps before starting
- Small "getting property of
undefined
" fix - Support for customized instance representation
- Fix editarea issue
- Fix terminal resize breaking the interface
- Add
Janeway#has_started
property
- Small editarea fix
- Improve Bun v1.x compatibility
- Add separate
IndicatorItem
class instead of using simple objects - Add sort support to
Indicator
class - Create 3 indicator areas: left, center & right
- Add main menu to the left area, move
Copy JSON
button to it
- Remove clipboard support (
copy-paste
dependency is abandoned) - Upgrade
isBinaryFile
dependency - Switch from
neo-blessed
toreblessed
module
- Upgrade to protoblast v0.8.0
- Get some more
Map
feedback - Merge UX tweaks from j1mmie/janeway
- Make the style of the time part of a status message configurable
- Make
Copy JSON
button also dump to a file - Make scroll-wheel scroll step configurable
- Refuse to start on Bun for now
- Add
Janeway#reloadScreen()
, which re-enables the alternate buffer & mouse - Supply the original
stdout
to blessed so reloading the screen will work - Add
extra_output
stream option to which extra control sequences will also be sent - Fix an off-by-one click issue
- Add support for using
await
in the CLI - Increase the
caller_info.min_length
default length to 26
- Sort the properties by key (new boolean setting "properties.sort")
- Don't perform expensive object compare function by default (new boolean setting "properties.alike_objects")
- Don't show getter property values by default, they now require a click (boolean setting "properties.show_get_value")
- Cleanup the inline property inspection (used to use
utils.inspect
) - Date objects now show a formatted string
- Use ellipsis instead of 3 dots
- Allow config to be in a
janeway.js
file, too - Use
path.sep
to get the correct separator on windows - Indicators can now be used to create menus
- Finally add resize support
- Upgrade to
neo-blessed
fork
- Make the minimum stack size configurable, defaults to 6
- Fix additional opening curly braces
- Add hexadecimal view of Buffers
- Fix getting the current scroll index on a click
- Add pagination support & implement in Buffer hex view
- Added
mouseup
,mousedown
,mousemove
and implementedmousedrag
event - Enabled selecting values in a
HexLogLine
- Added
LogLin#getValueForClipboard
, for setting the value to copy to clipboard - Starting Janeway with a binary file as argument will show the hex viewer
- Increase the captured stacktrace length
shutdown_on_exception
is now false by default- Add exit shortcut to the configuration, refs #11
- Add basic evaluation support to the execbin, refs #10
- Read out getters to object inspection
- Pad the object key length to the longest length of all keys
- Also enable module evaluation when supplying
--evaluate
, refs #10
- Added
Logline#render
, which re-renders the given line ArgsLogLine#dissect
will now hook onto an object with areportProgress
method and display the progress as a percentage- Add
blessed.screen
default options to user config - Allow setting a custom
screen
in thestart(options)
to render Janeway to Janeway#redraw
now callsrealloc
(instead ofalloc
) and arender
- An object's
namespace
will now be shown in anArgsLogLine
- Add callback to
fs.writeFile
so it no longer throws the deprecated warning error - Store the
vm_context
on theJaneway
instance, so CLI variables can be set in other parts of the program - Set the
$0
variable using thevm_context
- Detect clipboard pasting of multiline strings
- Crashing programs shouldn't cause broken terminals anymore
- Setting indicators shouldn't crash the program when janeway hasn't loaded
Janeway#args_name_map
property can be used to change which nameArgsLogLine
shows (by default it's the filename with .js stripped of)- Fix bug where indicator hover text would not be saved if updated while already visible
- Added capability to store external user configuration in
~/.janeway/janeway.json
- Added persistent cli history
- Make autocomplete popup only as wide as the biggest suggestion
- Don't show empty lines in autocomplete popup
- Unselect current selected line when manually executing something via the cli
- Set required file on
require.main
object LogList#consoleLog
will now return the createdLogLine
- Added spinners, which can be rendered in the statusbar
- Added
Janeway#redraw
, which forces a re-render - Added indicators
- Added menu bar
- Added 'Copy' button to copy current selection to the clipboard
- The currently selected object/string will be stored under the $0 global
Janeway#setTitle(str)
will now set the title of the terminal tab- Remove 'Line 0' when Janeway starts
- If a new line contains the same data as the previous one, it is not printed to screen, but a counter is added to that previous line.
- The CLI now uses a modified Textarea widget: arrow keys, delete, home, end now all work as they should
- Added a statusbar under the CLI, which can be set using
Janeway#setStatus
, it should only be given regular text, though it does support blessed tags. - Move classes to the Develry.Janeway namespace
- The Janeway instance can now be accessed at the
__Janeway
global - Only +/- 1000 lines will be stored, when going over that the top lines will be removed
eval
is no longer used to evaluate CLI code, nowvm#runInNewContext
is used- The new CLI evaluation now has access to
require
- Because of ditching
eval
, declaring variables (or asigning withoutvar
) will no longer create a global. In order to create on, you'll have to do something likeglobal.myglobal = 'globalvalue'
- Added
getPropertyNames
to recursively look through an object's prototype chain to fill the autocomplete popup - Command evaluation will first wrap the command in parentheses, if it fails it tries it without them.
- The
janeway
command will set the title on boot - Autocomplete will now also select current item when typing '(', it already does this for '.', a tab and an enter
- Add brackets when opening objects
- Also split strings on \r\n or \r newlines
- Show
__proto__
property when inspecting objects - Add timestamp to loglines
- Remove '.js' from filenames
- Added
uncaughtException
listener to print errors before crashing - Changed scrolledManually and scrollDown property to underscored name
- Let Janeway handle application crashes better
- Add autocomplete (basic for now)
- Add CLI history
- Allow Janeway to be run globally
- Add date object to line info
- Improve multiline string support
- Upgrade
blessed
dependency to 0.1.81 - Throttle the
render
method to not overload the process - Automatically scroll down when new line is added
- Clicking on functions will now read out properties
- Pressing pageup/pagedown will scroll up or down
- Fix click/scroll index issues
- Stringify Objects using util.inspect, to prevent toJSON interference
- Caller info is added (where the output came from in the script)
- Strings with newlines will be printed out along multiple lines when selected
- Updated blessed dependency
- Fixed bug where lines were kept in memory and causes screen glitches
- Fixed global scope command problem (removed vm in favour of regular eval)
- Added Janeway.debug method, which outputs to a logfile
- Upgraded "blessed" dependency to 0.0.38
- More minor bugfixes
- require('janeway') will now return an instance of the Janeway class
- Janeway now takes command of
stdout
,stderr
and all theconsole
methods - Janeway is now also an event emitter (Using Protoblast's Informer class)
- Newlines are now replaced with a Unicode return symbol
- Added new commands to the CLI:
- 'exit' will exit Janeway and the running app (as will Escape or Control+C)
- 'cls' will clear the screen
- Initial Github commit and npm release!