IMPO - the Impossible Editor
Intro
IMPO, the Impossible Editor, is a simple, multi file, node based, code editor, built using Impossible.js. You can use it, believe it or not, in both the terminal and the browser.
The editor is meant to explore the limits of Impossible as an app frramework and the Impossible Collection as a component library. This readme file was edited using the editor. The code for this editor was edited using the editor. Commit messages are made with this editor. So, yah, it works, but do use with care.
Installing
Open terminal and type npm install -g impossible-editor
Using
Just type impo
to launch
-
Files:
- Creating a new file:
ctrl n
- Opening a file:
ctrl o
- Saving a file:
ctrl s
- Saving a file with a new name:
f12
- Creating a new file:
-
Editor:
- Quit documet and editor:
ctrl q
- Change Document:
ctrl d
- Change code highlight language:
ctrl l
. Leave empty to auto-detect. - Change theme:
ctrl t
- Turn line numbers on/off:
f1
- Quit documet and editor:
-
Editing:
- Select text:
shift arrows
- Cut:
ctrl x
- Copy:
ctrl c
- Paste:
ctrl v
- Find:
ctrl f
(thenctrl f
again to keep "sticky") - Replace:
ctrl r
(thenctrl f
again to keep "sticky")
- Select text:
-
Dialogs:
- Select a button/control:
tab
- Navigate in control:
arrows
- Confirm Selection:
enter
- Select a button/control:
Using from CLI
- Opening a file from command line:
impo samples/default.js
- Creating a file from command line:
impo {new_file}
- Setting up as git commit editor:
git config --global core.editor "impo"
Current status
- Automatic code highlighting based on file extension (example
.md
is highlighted asmarkdown
) - Ability to autodetect or select highlighting language manually.
- An internal clipboard shared between documents.
- Find and Replace.
- File status indicator (! is changed, ✔ is saved).
- Save As functionality.
- Warn on exit without save.
- Line numbers aware of wrapping.
- One native, one dark and one light themes.
Feature Todo
- Reasonable Ctrl-Z.
Tech
Built using Impossible.js. Code highlighting is done using Highlight.js.
Authors
(c) Ron Ilan