Skip to content
envoscalePublic

About

EnvIDE: a code editor and IDE written in EnvoL.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

EnvIDE

A code editor and IDE written in EnvoL, drawn with EnvoUI and EnvoR: no third-party code, and the same pixels on Windows and Linux.

EnvIDE in the dark theme: the EnvoLang repository in the sidebar with examples/02-shapes open, and its main.envol in the editor

EnvIDE in the light theme, with examples/03-generics/main.envol open

Both pictures are EnvIDE drawing itself, without a window:

envide path/to/EnvoLang examples/02-shapes/main.envol --screenshot dark.ppm --size 1280x760
envide path/to/EnvoLang examples/03-generics/main.envol --screenshot light.ppm --light --size 1280x760

What it does

  • Files: New, Open File, Open Folder, Save, Save As, Save All, Revert, Close. A tab with unsaved changes has a dot, and so does the window's title; EnvIDE asks before closing it or quitting. Unsaved changes are copied to a backup every few seconds and when the window closes, and the next start in the same folder brings them back.
  • Tabs: many files open at once, each with its own cursor and undo history; Ctrl+Tab and Ctrl+Shift+Tab move between them.
  • Menus: File, Edit, View, Go and Help, with every shortcut shown, and a command palette (Ctrl+Shift+P) that lists every command.
  • Finding things: Go to File (Ctrl+P) over the whole folder, Go to Line (Ctrl+G), Find (Ctrl+F, then F3) and Replace (Ctrl+H).
  • The sidebar: the folder's files with icons by kind (the EnvoL mark for .envol, .envon and .eir), folders first, build output left out. Ctrl+B hides it; its edge drags.
  • The editor: syntax colors, line numbers, multiple cursors, toggle comment (Ctrl+/), zoom (Ctrl+= and Ctrl+-), a light or dark theme.
  • Files it should not open: images, executables and other binary files are described instead, and files over 64 MB are refused. Text with bytes that are not UTF-8 opens, and EnvIDE asks before saving it.

What comes next is in the roadmap: completion and diagnostics through envo lsp, panels and split editors, a terminal, build, run and debug, and plugins.

Use

./build.sh run                         # build, then open EnvIDE on this folder
build/envide <folder> [file]           # open a folder, and a file in it

./build.sh clones EnvoLang at the commit in envolang.ref and builds it (about a minute, once); set ENVOLANG to use a checkout of your own. ./build.sh test runs the tests.

Code

File
shell.envol The window's parts and what input does to them. It never touches the window, so the tests drive it directly.
main.envol Arguments, then the window and its loop, or one frame into an image
tests/ Tests, run by envo test

Anything EnvIDE needs from the operating system is a port in the EnvoL library with adapters there, never code here.

License

Apache-2.0: see LICENSE and NOTICE.

About

EnvIDE: a code editor and IDE written in EnvoL.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages