Liquid Text Editor
The flexible text editor and environment built in pure clojure.
The content on this page is currently being created. For more information about Liquid visit the Github page: github.com/mogenslund/liquid
local ╮ remote ┴ server ─ serverable ╮ │ ╭ embed │ ╭ fluidable ┼ link comfortable ╮ │ │ ╰ platform useful ┴ keybindings ┤ │ │ ╭────────╮ ├ dependencies ─ clojure ─ only none ╮ ├─┤ Liquid ├─┤ demand ─ on ╮ │ │ ╰────────╯ │ ╭ core ─ tiny ╰ typeahead ┤ │ │ │ ├ distractions ╯ ╰ translateable ┼ model ─ simple demand ─ on ╮ │ │ ╰ completions ╯ ╰ plain
Salza λiquid text editor is designed with clojure developers in mind
The editor is written in pure Clojure. That is, there are no other dependencies, not even curses or lanterna!
I have been using Emacs for many years. I have tweaked it a lot and implemented modes, to simulate the Vim way of switching between insert mode and normal mode for navigation. I like being able to use the whole keyboard for navigation. As you will see in the video below, I am very inspired by Emacs and Vim, but I have choosen not to try to copy or reimplement Emacs or Vim. I have only stolen the features that I need or like. I hope others will just create plugins or extensions to make the editor support other features that they like.
I could tell a lot about the editor, but I think you should see the video below for a demonstration.
Watch this video to get a sense of how the editor works: liquid01
Technical video explaining the core datastructure of the editor
This video is for technical minded people to get a view of the inside of the construction of the editor. Useful for understanding the idea behind the editor or as inspiration for similar projects or extensions of this: slider01
With Clojure code. It should be easy to have the same code executed from within the editor as well as outside. Using a real language for extensions provides a great advantage compared to a "home made" extension language, that only fits the specific editor.
Example: As a QA Engineer I do test automation using Selenium WebDriver. I have included the Selenium jar into my local environment, so now I can execute tests, parts of tests or snippets from within λiquid.
All other tools that I create in Clojure, which are useful as is, are easy to make accessible from within the editor as well.
Embedding the editor into your your application
Include the λiquid to your project and use it as part of your program or for debugging and patching, just like you already do with the REPL, but with some advantages: It is easier to open a file with code and execute parts of it, or jump between snippets, do modifications, and execute again.
Example: I have a file with snippets like: `(patch "myserver")`, `(status "myserver")` and `(run-test "name-of-test")`. I just modify "myserver", if needed, and press "e" to execute the command.