Skip to content

Releases: your-editor/yed

v1506

03 Aug 14:49
9a5abe2
Compare
Choose a tag to compare

1506 - 2023-8-3

Fixed

- Fixed an approximately 4 year old bug where the cursor could get stuck in the scroll offset region.

v1505

09 Mar 22:07
Compare
Choose a tag to compare

1505 - 2023-3-9

Added

- Rectangular selection mode, which works with `yank-selection` and `delete-selection`!
- New command `select-rect`

v1504

23 Feb 17:30
e412790
Compare
Choose a tag to compare

1504 - 2023-2-23

Fixed

- Trigger the appropriate event when `EVENT_PLUGIN_POST_UNLOAD`.

Changed

- YPM: only update the list buffer when it is visible. This was taking up time in startup for no good reason.

v1503

12 Jan 16:01
3708864
Compare
Choose a tag to compare

1503 - 2023-1-12

Changed

- `simple-insert-string` now respects some escape characters such as newline.

v1502

06 Jan 19:34
639dcff
Compare
Choose a tag to compare

1502 - 2023-1-6

Changed

- `yed_parse_attrs()` now merges attributes when referencing a style component (without a field specifier).
  E.g. `yed_parse_attrs("&active &blue")` now merges blue onto the active foreground and background.
  Previously, the `&blue` reference would simple overwrite everything with `blue`, which does not have a background color, resulting in blue foreground and a `NULL` background.
  Now you will end up with `blue.fg` on top of `active.bg`.

v1501

28 Dec 15:38
65691ef
Compare
Choose a tag to compare

1501 - 2022-12-28

Fixed

- A bug in buffer loading code caused us to miss out on an idx/col/glyph translation optimization.
  Fixed it. Should improve performance all over the place.

Changed

- The `words` completion source is way faster now!

Added

- The default completion source `words` no longer scans special buffers with more than `compl-words-buffer-max-lines` lines.

v1500

07 Oct 15:27
80b6975
Compare
Choose a tag to compare

1500 - 2022-10-7

Fixed

- Some macros contained code that caused compiler warnings or errors when compiled as C++.
- `yed_buff_get_glyph()` now returns `NULL` if the given position is the end of the line.
- Fixed a bug where sometimes the cursor would not be returned to the top left of a frame when it no longer is displaying a buffer.
- Some memory leaks.
- Fixed memory bug in bucket_array.
- Fixed a bug where there was a delay when a key is pressed immediately after ESC.
- Now, ZERO writes are sent to the terminal if the screen/cursor position have not changed.
  This is overall more efficient, but also very useful for some terminals that detect inactivity and do things like disabling their
  renderer to reduce CPU and GPU usage as well as lower power consumption.
- Fixed a bug where variables with newlines displayed in `*vars` would be on lines for subsequent variables.
- Fixed a bug where `yed_write_buffer_to_subproc()` would sometimes fail when `read()` calls got interrupted by signals.
- Fixed a bug where the cursor could move while performing a `replace-current-search`, which would cause a crash.
- Got rid of some compiler warnings.

Changed

- `yed` attributes can now have mixed modes for foreground and background. For example, an attribute could define an RGB background, but a 256-color foreground.
- `frame-resize` and `frame-tree-resize` can now be run non-interactively by passing 2 arguments, width and height (floats [0,1]).
- The default completion source `words` no longer scans special buffers for words unless the variable `compl-words-include-special` is truthy.
- `frame` now accepts an index or a name of a frame to activate.
- `yed` now only ships with the following plugins: `yedrc`, `ypm`, and `style_pack`
- The default value of `buffer-load-mode` is now `stream`. This is needed to, e.g., open "files" in `/proc`.
- `sh`, `sh-silent`, and `less` now use the value of `$SHELL` instead of `bash`. (thanks @euclaise!!!)

Added

- `yed_force_update()`: force an editor pump as soon as possible, bypassing the key press timeout.
- `yed_frame_set_name()`: set or clear a name for a frame.
- `yed_find_frame_by_name()`: lookup a frame based on its name.
- `yed_frame_tree_swap_children()`: swap the layouts of split frames.
- `yed_frame_set_pos()`: set the absolute position of the frame/parent frame tree.
- `yed_frame_tree_set_pos()`: set the absolute position of the parent frame tree.
- `yed_frame_set_size()`: set the absolute size of the frame/parent frame tree.
- `yed_frame_tree_set_size()`: set the absolute size of the parent frame tree.
- New commands:
    - `frame-name`, `frame-uname`, `frame-tree-next`, `frame-tree-prev`, `frame-set-position`, and `frame-tree-set-position`.
    - `open-command-line-buffers`: This command is run when `yed` starts and is passed the paths specified on the command line.
      By default it opens the buffers/frames/a split in the same way `yed` always has, but now that it's a command, it can be overridden.
    - `buffer-hidden`: Load a buffer, but do not create a frame or load it into one.
- New in status line: `%n`: the active frame's name (or `-`, if none).
- New events:
    - `EVENT_FRAME_PRE_ACTIVATE`
    - `EVENT_FRAME_POST_DELETE`
    - `EVENT_FRAME_PRE_MOVE`
    - `EVENT_FRAME_POST_MOVE`
    - `EVENT_FRAME_PRE_RESIZE`
    - `EVENT_FRAME_POST_RESIZE`
    - `EVENT_PRE_DRAW_EVERYTHING`
    - `EVENT_POST_DRAW_EVERYTHING`
    - `EVENT_SIGNAL_RECEIVED`
    - `EVENT_BUFFER_POST_DELETE`
    - `EVENT_BUFFER_CREATED`
    - `EVENT_BUFFER_PRE_FOCUS`
- New style components: `white`, `gray`, `black`, `red`, `orange`, `yellow`, `lime`, `green`, `turquoise`, `cyan`, `blue`, `purple`, `magenta`, and `pink`
    - These are automatically generated for any style if they are not explicitly set.
    - Colors are generated such that they are relatively pleasant and readable with the other colors in the style.
- `screen-update-sync` enables a feature that sends `CSI ? 2026 h` and `CSI ? 2026 l` before and after screen update writes to reduce tearing and jitter
  in situations where the write payload isn't received as a unit by the terminal (typically over `ssh`). Respectable terminals will simply ignore these codes if they do not support
  the feature, but just in case, it can be disabled with the `screen-update-sync` variable.
- More default command completions.
- Added SIGABRT to the list of fatal signals that print a backtrace.
- For plugins that use `syntax.h`: `syntax-max-line-length` allows the highlighter to skip lines that are very long to avoid hangs on unusual files.
- Added the ability to change the installation paths of binaries after they're built. This should make it much more possible for package managers to build yed somewhere safe and then move the installation.

v1403

04 May 20:36
Compare
Choose a tag to compare

1403 - 2022-5-4

Fixed

- Fixed a bug in `write_welcome()` that caused segfualts when the horizontal screen sized was too small.

v1402

13 Apr 16:01
Compare
Choose a tag to compare

1402 - 2022-4-13

Fixed

- Fixed a bug in `yed_service_reload()` that caused compilation failure for GCC 12.

v1401

08 Apr 13:39
aab28ad
Compare
Choose a tag to compare

1401 - 2022-4-8

Fixed

- Fixed a bug where the screen needed to be fully redraw when resuming from suspend, but wasn't.
- Fixed a bug where the screen dimensions could be incorrect after resuming from suspend.