A simple and opinionated modal code editor for your terminal
**/*.{js,ts}
did syntax not include the async
keywordcolor <color-ident> <value>
command to correctly parse hex colors of the form 0xdddddd
where d
are digits**/*.glsl
syntaxmap normal ; :
to default_configs.pepper
plugin-remedybg
to add support for new version 0.3.8.4
which enables several plugin code simplifications\r
which would screw some buffer invariants<
and >
as path delimiters when using gf
eprintln
in its platform layeropen
now errors when trying to open a buffer with an empty pathreplace-with-output
list-buffer
command name to list-buffers
**/*.refs
syntax by simplifying it a little:
suffix when listing currently opened buffers.sh
shell files@output()
expansion which expands into an external command stdout@var(...)
inside a @var(...)
)@command-source()
expansion which expands into a macro command’s sourceremedybg-plugin
to support newer events from version 0.3.8.6
insert-text
commandset-clipboard
command>
(indent command) will no longer indent empty lines^
or $
i
and p
respectively@readline-input()
as the input can now be accessed by register(i)
toggle-comment
which will toggle a prefix comment for each line reached by a cursor=
binding while in normal mode[aA]`
was missinglog
as a open
command option which is the same as old scratch
and now scratch
enables buffer history by defaultfile-backed
as a open
command option which affects open and reopen commandsoutput
as a open
command option which disables all buffer prorperties (suitable for process outputs)to-lowercase
and to-uppercase
commandssave-all
and reopen-all
to only report an error at the end and always try to process all buffersBufferBreakpointId
to BufferBreakpoint
which is a buffer scoped monotonically increasing breakpoint idopen-log
to always refreshes the log buffer’s contentplugin-remedybg
to make use of the new IPC driver api which enables better integrationhelp
command to autocomplete on help page names and always open help pagescc
and hh
file extensions for the c++ languagespawn
commandreplace-with-output
commandremedybg-plugin
breakpoint sync on spawnindent_with_tabs
to falsexa
binding that used to list all breakpoints in a bufferbuffer-list
command that lists all buffers in a new bufferlint-list
command that lists all lints in a bufferbreakpoint-list
command that lists all lints in a bufferhistory-disabled
would move the cursor to the topsaving-disabled
and invalid chars in its pathgf
would not open file when it’s relative to the root and the current buffer’s path parent existsm_
, gf
, etc)@cursor-anchor()
and @cursor-position()
expansions which expand with the format line,col
@cwd()
expansion which expands into the current directory path[]{}
as path delimiters for find_path_and_ranges_at
(gf
on normal mode)x
that interact with breakpointsbackground
to normal_background
active_line_background
to active_background
breakpoint_background
%
character, it will perform a pattern search instead of a fixed string search (it’s still possible to force a fixed string search by prefixing it with either f/
or F/
)find_path_and_position_at
to also break on "
and '
plugin-remedybg
folder)a)
will now select text between )
and (
instead of (
and )
StatusBar
to Logger
(and editor.status_bar
to editor.logger
)print
command to log
command which accepts a <log-kind>
parameter (use log status <args...>
for old behavior)open-log
commandif
command that supports ==
and !=
operations to conditionally execute other commands@platform()
that expands to the platform name the editor is running on top of.set-env
command to change the editor’s environment variables@arg(*)
expanding into no arguments if it’s emptysave
command alias s
not taking arguments as it shouldcd
binding (delete all cursors except the main cursor) to CD
cd
binding that only deletes the main cursorgf
(and GF
) that could open a duplicate of an already opened buffer if trying to open the same path but absolutereopen-all
would fail if there was a scratch buffer with a path that does not existspawn
command to use a piped stdout in order to detect when the process exitscursor-<anchor/position>-<column/line>
expansions to be one based (instead of zero based) for easier interoperability with other softwarefind_path_and_position_at
to account for paths followed by :
{...}
string blocksposix_spawn
instead of fork
to spawn a server for better reliability and to remove the need to use libc::daemon
which is deprecated on macos--
cli positional args-
won’t show up in auto completionsdefault_commands.pepper
with default_bindings.pepper
into default_configs.pepper
map-<mode>
commands into a single map
command whose first parameter is the mode to map keys tosyntax-<token-kind>
commands into the syntax
command which can take the first parameter the token kind for the defined patternset-register
commandopen
command parameters order, now buffer properties come before the path
parameteralias
command since it’s now possible to replicate its behavior by creating a new command that calls the aliased command and use the @arg()
expansionfind-file
and find-command
commands as they’re now implementable using other builtin commands (see default_configs.pepper
for an example)saving-disabled
changes
fieldpepper-
prefix to windows session named pipe paths./
(on Buffer::set_path
and Buffer::find_with_path
)$
is now !
and what was !
is now removed; that is, there’s no longer a ‘only insert from command output’, just ‘replace with command output’ (|
command) and if the selection is empty, it behaves as if it was the old !
xclip
instead of xsel
lsp-references
would not load the context buffer<c-i>
(insert at end of line) by instead mapping it to tab on unixlsp-stop
and lsp-stop-all
when there is no lsp server running:help changelog<enter>
There was no official changelog before. However, up to this point, we were implementing all features related to the editor’s vision. Then fixing bugs and stabilizing the code base.