# `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.