v2.0.0
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.
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.
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).
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-.
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
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
vi-mode
Many bug fixes and refactorings for vi-mode have been contributed by @theangelperalta.
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.