Releases: I3oris/ic
Releases · I3oris/ic
v0.7.0
0.7.0 (Mon Apr 17 2023)
New
-
Update to the last crystal version (1.8.0).
-
Now display
REPLy
version on-v
.
Internal
- Use
ameba
v1.4.3 and fix lint error. REPLy
moved inside the compiler itself (in./share/crystal-ic/lib
), it's not required as a shards anymore.
Note: you can use
shards prune
to remove unused version ofREPLy
.
v0.6.0
0.6.0 (Mon Nov 28 2022)
New
- The history is now saved in
<home>/.ic_history
.- The file location can be controlled with the environment variables
IC_HISTORY_FILE
. (IC_HISTORY_FILE=""
disables history saving) - History max size is 10_000. (Can be controlled with
IC_HISTORY_SIZE
)
- The file location can be controlled with the environment variables
- The new following hotkeys have been added: (thanks @zw963!)
ctrl-d
: Delete char or exit (EOF).ctrl-k
: Delete after cursor.ctrl-u
: Delete before cursor.alt-backspace
/ctrl-backspace
: Delete word afteralt-d
/ctrl-delete
: Delete word before.alt-f
/ctrl-right
: Move word forward.alt-b
/ctrl-left
: Move word backward.ctrl-n
/ctrl-p
: Move cursor up/down.ctrl-b
/ctrl-f
: Move cursor backward/forward.
- Behavior when auto-completing on only one match is slightly enhanced.
- Crystal interpreter version is now 1.6.2.
Bugs fix
- Fix #9: repair require of local files, thanks @lebogan!
- Fix display of auto-completion title on pry.
- Reduce blinking on ws-code (computation are now done before clearing the screen). Disallow
sync
andflush_on_newline
duringupdate
which help to reduce blinking too, (#10), thanks @cyangle! - Align the expression when prompt size change (e.g. line number increase), which avoid a cursor bug in this case.
- Fix wrong history index after submitting an empty entry.
- Fix ioctl window size magic number on darwin and bsd (reply#3), thanks @shinzlet!
Internal
- Extract
repl_interface
/expression_editor
/char_reader
/history
into a new shardREPLy
and use it as dependency. - Use ameba v1.3.1 and fix lint error.
- Use REPLy v0.3.1.
v0.5.1
0.5.1 (Mon Sep 12 2022)
New
- The auto-completion behavior is improved:
- Now entries are narrowed as the user types.
- Matching part of the name are now displayed in bright.
- Auto-completion is available on inner of
def
(Experimental)- It takes account of parameter types:
def foo(a, b : String, c = 0, *args, **options) a.| # => Any b.| # => String c.| # => Int32 args.| # => Tuple(Any) options. | # => NamedTuple()
- It takes account of scope.
- A new fictitious type
Any
is introduced, bypassing the semantics check onCall
. (foo(<Any>).bar.baz # => Any
) - The following is not yet supported:
- Block parameter
- Instance var parameter
- Free vars
- Class def
- Def in generic type.
- Auto-completion now works inside a
Array
. - Update to the last crystal version (1.5.1).
Bugs fix
- Fix bad unindent on
include
(unindent still work forin
). - Fix broken auto-completion after
.class
. - Fix broken auto-completion after a suffix
if
.
Internal
- Fix wrong
CRYSTAL_PATH
in Makefile (preventing to add lib dependency). - Remove some ameba excludes.
v0.5.0
0.5.0 (Fry Jul 15 2022)
New
- Implements auto-completion on Paths (
Foo::Bar::
) - Improve error location, now display the correct location corresponding to prompt lines. Allow
pry
to display top-level frames. - Add the
reset
command. - Implement keyboard interruption on
ctrl-c
. - Make interpreter installable via shard (Add postinstall script for shard), thanks @Vici37
- Implements shortcuts
home
andend
to respectively move cursor to begin and end of expression, thanks @Vici37. - Load crystal stb in background during REPL startup, thanks @Vici37.
- Add a visual mark ('>') on auto-completion entries if
--no-color
. - Allow usage of
NO_COLOR
environment (compliant to https://no-color.org). - Update to the last crystal version (1.5.0)
Bugs fix
- Don't colorize keyword methods, e.g.
42.class
- Fix crash occurring on
require
auto-completion if current folder doesn't contain alib
folder. - Fix wrong auto-indentation on parenthesized call.
- Fix color bug occurring on wrapped line on edge of view scroll.
- Fix bad display when
ctrl-c
an multiline expression. - Fix missing
bin/
when usingmake
. - Fix broken
make release
. - Fix #3: compile failed on local linux laptop (arch linux), thanks @zw963
- Fix
Invalid option: -v
, from crystal-lang/crystal#12094. - Fix already required files to not be removed from auto-completion entries.
- Fix bug auto-completing setter methods.
- Avoid insertion of control characters in editor, causing bad display.
- Prevent auto-completion while prelude is still loading. (Fix bug due to concurrent call)
Other
- Allow comments to be in history.
- Ensure llvm-ext is built before 'make spec'.
- Add 'make install' & 'make uninstall', make IC works independently of its position, also move
crystal-i
->share/crystal-ic
. - Remove
--static
in release mode. - Better handling if prompt change its size (line_number >= 1000).
- Improve performance when editing large expressions.
- Fix typo on invalid option.
Internal
- Write spec for
History
/AutoCompletionHandler
/CharReader
/ExpressionEditor
. - Allow spec to test private methods
- Add some missing
private
. - Make
CharReader
accept IO withoutraw
mode. - Make
ExpressionEditor
/AutoCompletionHandler
/ReplInterface
/Repl
output on any IO. - Tiny refactor on
ReadChar.raw
. - Small refactoring: remove static methods in IC to puts them directly to Repl. (Re)rename
main.cr
toic.cr
. - Refactor
AutoCompletionHandler
. - Refactor auto-completion (second time), allow it to trigger when editing long multiline expressions.
- Improve 'ExpressionEditor#expression_before_cursor'.
- Move
.dup
for a more semantically correct behavior. - Update .ameba.yml
- Re-organize files.
- Compile with -Dpreview_mt flag.