Skip to content

v2.0.0

Compare
Choose a tag to compare
@cxxxr cxxxr released this 22 May 11:45

SDL2 Frontend

The highlight of this release is the implementation of the SDL2 frontend. This feature adds mouse support, graphic capabilities, and Windows support.

Graphics

Thanks to SDL2's graphics feature, it is now possible to display images and shapes. You can draw at any location on a specified buffer or window.
screenshot-1

Mouse Support

I've added support for mouse clicks and scrolling. Moreover, inserting S-expressions at the cursor position with a middle mouse click, as well as selection by double-click or triple-click, has been made possible.

Addition of Color Themes

Until now, the default themes were limited to emacs-dark and emacs-light. However, with this release, I've added over 180 new themes. These themes were created by @lukpank.
https://github.com/lukpank/lem-base16-themes

Additionally, I've added the M-x list-color-themes command, which allows you to display and select from the list of available themes.

color-theme

Furthermore, the selected theme is saved as a plist in $HOME/.lem/config.lisp and applied when the editor is restarted.

UI Improvement

I have significantly improved the default look of lem. I've changed the look & feel of elements such as floating-window borders, frame-multiplexer tabs, and the mode line. Moreover, I've added highlighting to the line at the cursor position.

I've also revamped the UI for listing buffers (C-x C-b) and displaying the slime connection list (M-x lisp-connection-list).

list-buffers

Furthermore, I've updated the design of the completion window that appears with commands like C-x C-f.

grep

I've improved the UI for displaying multiple candidates when using grep or M-.

screenshot-grep

directory-mode

I've improved the display when opening directories using M-x Find File(C-x C-f). Major updates include:

  • Display of emojis corresponding to files
  • Added mouse support
  • Ability to open files not supported by lem with external programs

screenshot-directory-mode

Asynchronous Completion

I've made completion calculations asynchronous. This improvement reduces lag during completion calculations.

Lisp Mode

Several minor improvements have been made:

  • Indent adjustment when yanking
  • Addition of a feature that does not insert ')' when there's no corresponding opening parenthesis
  • Adjustment of output position to REPL
  • Hovering over underlined parts during function/file compilation pops up messages

compile-error

vi-mode

Many bug fixes and refactorings for vi-mode have been contributed by @theangelperalta.
vi-mode

Other Changes

There have been numerous other changes, including:

  • Add var and defun for removing trailing whitespace on save #608 (@rearman )
  • Close socket gracefully when `slime-quit' #622 (@kchanqvq )
  • Addition of json-mode
  • Minor changes and large-scale refactoring, such as replacing internal modules used in lsp-mode, language-server
  • A significant number of bug fixes

Known Issues

There are several unresolved issues related to SDL2:

  • The SDL2 frontend may not work with certain graphic drivers, especially when installing graphic drivers on Linux.
  • On Linux, the system may become unresponsive when returning from suspend.
  • Modifier key changes in macOS settings or Linux's xmodmap may not be reflected.