Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

JereIDE

JereIDE is an awesome editor with 67 stars. Even though there are this many stars, somehow it only has 2 users.

That’s why the tagline is “The ready-to-use editor that nobody uses”.

JereIDE is actively developed by a single person, Jeremy-Qian.

Important

JereIDE is still in very early stages and is not for production use. Check out Zed if you want a production-ready code editor. I am not responsible for any data loss or damage caused by using JereIDE.

Expect lots of bugs and breaking changes.

Contributing

I would love for you to contribute by either issues or PRs, because nobody ever submitted them to me!

Getting Started

JereIDE is in a very early stage, but you could try it out easily. All the releases(including the legacy versions) are on the releases page.

Installation

JereIDE is available to macOS and Windows. Linux is not planned in the near future.

macOS

Requirements: macOS 12+, Intel or Apple Silicon

To install on macOS, go to the download page. Scroll to the version you prefer(I recommend the latest, because JereIDE is highly unstable and can have fatal bugs in older versions) and select in the dropdown either macOS Apple Silicon or Intel.

Note

Note that even though macOS 27 drops support for Intel entirely, JereIDE will continue to support Intel devices and older macOS versions for quite a while because I am using an old laptop.

Windows

Requirements: Windows 10+, AMD64 chip

Just go to the download page. Scroll to the version you prefer and select in the dropdown “Windows Intel” or similar options in older versions.

Tip

Windows 8 is technically supported but JereIDE would be near to unusable there. I don’t want to put in time and effort trying to maintain compatibility with a completely obsolete operating system that I am not using.

Setup

When you open JereIDE, a welcome page would show with the version, the logo, and the tagline.

Get to Know the Command Palette

JereIDE has a useful Command Palette so you can search and run the commands you need. Press Cmd/Ctrl+Shift+P to open it. Press Esc, click outside, or run a command to close it. You can select commands with top/down arrows or your mouse. You can run them with Enter or Return.

Creating, Writing, and Saving Tabs in JereIDE

Press Cmd/Ctrl+N to open a new tab.

The new tab will appear with a blank editor, with “Untitled” in the tab title. You can start typing now. After you are done, press Cmd/Ctrl+S to save the file. A dialog will open and you can choose a filename(and the extension too) and save it in the directory you want.

If a file is modified, or “dirty”, a dot will appear to the left of the tab title. After you save it, the dirty dot will vanish.

You can always close a tab by pressing Cmd/Ctrl+W.

Tip

All of these commands are available in the command palette as file: new, file: save, file: close tab, etc.

Opening Files and Folders

To open a file, press Cmd/Ctrl+O or run file: open from the command palette and select the file in the native OS dialog. The file will open in a new tab and the editor will automatically switch to that tab.

To open a project, run file: open project from the command palette and select a folder in the OS dialog. This is an experimental feature; The current directory and its contents will be shown in the sidebar.

Tip

There are many, many ways to invoke commands like this. For example, you can select Open… from the File menu to open a file, or you could also click the Open… button and select Open File from the dropdown.

For opening a project, you can also select Open Projectfrom theFile menu or press Command+Shift+O. And you could also click Open… in the title bar and select Open Project from the dropdown.

The IDE Features of JereIDE

JereIDE’s IDE features are mostly not implemented or incomplete, but these features are actively getting worked on!

Find and Replace

Press Command/Ctrl+F or select Find and Replace from the edit menu to open the find/replace palette. It shows as a floating palette, but don’t worry, the results will always be visible.

Find and Replace is accessible from the command palette as editor: find replace.

If you have text selected in the editor when you trigger the palette, that selection is pre-filled into the Find field.

Searching

Type into the Find field to search the current document. The results will be highlighted and will automatically scroll into view(without getting blocked by the palette). The current result will have a stronger highlight. Cycle through results using Enter or selecting the next/previous arrows. The current result vs. all the results will be shown too, as Current Result Index/Total Results, e.g. 3/7.

Everything updates live as you type.

Options

  • Match case – only match occurrences with the same casing.
  • Whole word – only match whole words, not parts of longer words.

Replacing

Type something into the Replace with field.

  • Replace – replaces the currently selected match and automatically moves to the next result. Pressing Enter does the same.
  • Replace All – replaces every occurrence in the document at once.

Both actions are recorded in the editor’s undo history, so you can undo them like any other edit.

Future

Global project search is coming later.

Syntax Highlighting

JereIDE colorizes code automatically as you type. Highlighting for the correct language is done based on file extension.

Tip

Syntax highlighting will make typing a bit slower, but it’s already quite fast because of recent fixes.

Language Support

Syntax definitions are stored as JSON files in the app’s data directory. The following languages are built-in:

  • Rust
  • Python
  • HTML
  • Markdown
  • JSON

Other languages are coming, but if you really need support for one look below.

Custom Language Support

You could make AI generate a highlighting JSON file based on the four already implemented.

Important

Because some languages have complex syntax and is hard to highlight by plain regex(for example, Markdown and HTML), it would take some code editing to implement for these languages. Make sure your language is completely highlightable by plain regex.

Modify the app’s data directory. Create a new JSON file and define the highlighting for your definition. Then you edit languages.json to point to the new file.

Auto Indent, Bracket Pair Highlighting, and Auto Bracket Pairing

This page covers 3 of the smaller features working behind the scenes.

Auto Indent

In the future this might smart-indent based on language, but currently it just copies the previous line, whether it is made of spaces or tabs. Simple, and it works.

Bracket Pair Highlighting

If you are inside a bracket and your cursor is near one of them, both brackets get highlighted. This feature is present in many, many editors and JereIDE would be incomplete without it. It helps you find where your current level is at in a confusing nest of brackets.

Auto Bracket Pairing

When you type {, (, [, or <, the closing bracket(}, ), ], or >) is automatically inserted. If you happen to type the closing bracket yourself by habit, it won’t turn into {}}. Your cursor would just jump to after the closing bracket, as if auto-bracket-pairing had never happened.

If you delete the opening bracket of an empty pair, the closing bracket will be deleted too.

Important

The current implementations are not smart. In the future a better implementation will include the smart features that Zed somehow achieves.

The File Sidebar

The File Sidebar

This is quite a hidden feature, because there is no prominent button in the UI for toggling it on. You can toggle it by pressing Command/Ctrl+B or selecting view: toggle sidebar in the command palette or menu.

The file sidebar has been recently added as a stable feature, and it displays the files and folders in the current project(if any open). You can click on a file to open it in the editor, or click on a folder to expand it and see the stuff inside.

Note

Symlinks are currently shown with a link icon and may not be opened for stability reasons. That feature might be added in the future.

The Command Palette

The Command Palette is a palette that shows lots of commands! Here is a list of all of them, along with whatever they do.

file: new

Creates a new empty file and opens it in a new tab.

file: open

Opens a file picker so you can choose an existing file to open in a new tab.

file: open project

Opens a folder picker to choose a project dir. (Experimental)

file: save

Saves the current file.

file: save as

Saves the current file under a new name/location you choose.

file: close tab

Closes the current tab. If the file has unsaved changes, you’ll be asked what to do first.

editor: undo

Literally Undo.

editor: redo

Literally Redo.

editor: cut

Literally Cut.

editor: copy

Literally Copy.

editor: paste

Literally Paste.

editor: select all

Selects everything inside the current file.

editor: find replace

Opens a find&replace palette. You can learn more here.

editor: go to line

Opens an entry for you to jump to a certain line. Also invokable by status bar line indicator or Cmd/Ctrl+G.

command palette: toggle

Since the command palette is open, this will close it.

view: toggle sidebar

Shows or hides the sidebar. (Experimental) Also invokable by Cmd/Ctrl+B.

view: code

Switches to the code mode.

view: compose

Switches to the compose mode.

jereide: open settings

Opens settings.toml in a new tab. Also invokable by App Menu or Cmd/Ctrl+,.

jereide: open docs

Opens the docs in the default browser.

jereide: view log

This opens the read-only logs in a new editor tab.

jereide: toggle fullscreen

Toggles fullscreen, literally.

jereide: quit

Closes the app, of course.

jereide: about

Shows the About dialog.

jereide: star on github

THE BEST! Opens the JereIDE repo in the browser. Star it!

Bonus

Bonus features, easter eggs, experimental features, legacy debug widgets, and more!

The Widget Palette

Press Command/Ctrl+Shift+W to open the Widget Palette. It was the foundation of the Find&Replace dialog you see right now. It is kept because it… looks nice!

The User Menu

A dropdown appears if you click the round avatar button in the far right of the title bar. It says “Username” and “Star us on GitHub”. Click the second one, star me! The Username button is not functional.

Contact

My email is jeremytheking2013@gmail.com.
Feel free to contact me any time about JereIDE, or about my other projects.

If you think your GitHub issue is super-duper-ultra-important, but it didn’t even get reviewed, then you’re welcome to reach out here!

Github: Jeremy-Qian
GitHub Org: JereIDE

Credits

Thanks to the people who developed mdBook, egui, and the people who developed everything in the dependency tree! These crates are awesome!

And thanks to Dependabot for being the only one who submits PRs to me.