summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2024-01-17 15:01:15 +0100
committerEkaitz Zarraga <ekaitz@elenq.tech>2024-01-18 22:48:57 +0100
commitaa2036c1d8abb26341633d6550ef7f48f049c57b (patch)
tree1dd07613950cd867f17b7fef064f61b134651f8b
parenteb0d091771fa39dcb2a5b4793a1c10abcec0dc5e (diff)
readme: write some information to begin
-rw-r--r--README.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/README.md b/README.md
index 64bd4b4..9800964 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,32 @@
# `par` text editor
+
+`par` is written in R7RS Scheme. Testing is done on top of `chibi-scheme` but
+we are also trying to support `guile` when that's not a lot of effort.
+
+## Context
+
+`par` is a text editor which has a simple set of ideas behind:
+
+- Be simple
+- Be extensible
+- Don't overreach
+
+`par` only relies in R7RS, and all it's core is only based on it. That's an
+attempt to make it easily portable to other environments, where the constructs
+we are used to simply don't exist.
+
+## Code structure
+
+`par` is defined in three levels of abstraction. Par itself, how it interacts
+with the World around it and how it interacts with others. That's reflected in
+it's code structure:
+
+- `/par`: the internal functionality of the text editor that doesn't require
+ from standard libraries and should just work with R7RS (it's context and
+ system independent): Examples: internal piece-table, basic functionality...
+- `/world`: the interaction with the system where it runs. This may include
+ standard libraries of the scheme `par` is running on top of, and extra
+ libraries and extensions to support the system interaction. Examples: UI
+ definition, how to interact with the screen, network, etc.
+- `/others`: the interaction with the context where it runs: `editorconfig`
+ support, language parsing, etc.