# ScratchPad
A text editor I'm developing for personal use as well as getting used to 2D development with Vulkan. 

It's currently in an early state, functionality isn't entirely implemented for what you would expect for a text editor and it currently only works on Linux and x86 due to the platform layer only supporting Linux/X11 and inline assembly being used respectively. Will eventually also implement the platform layer for Windows.

## Details

- UI auto layout implementation that can handle resizable panels, text wrapping, windows and more
- Command palette for actions and eventually more such as config options
- Implemented with minimal external dependencies, only using cglm/xxhash/Vulkan Memory Allocator as well as system libraries and Vulkan for the graphics API
- Manual memory management primarily using arenas, no GC usage.
- Syntax highlighting (for D and C-like languages) and auto indenting/auto closing pairs (strings, braces, etc)

## Showcase

### Videos

https://git.sleepy.day/sleepy-day/editor/raw/branch/master/media/features.mp4

https://git.sleepy.day/sleepy-day/editor/raw/branch/master/media/indents.mp4

### Screenshot

![Screenshot](https://git.sleepy.day/sleepy-day/editor/raw/branch/master/media/editor.png)
