kookie/teksus
1
1
Fork
You've already forked teksus
0
📜 My attempt at a modern emacs inspired text editor
  • Rust 100%
Katharina Fey 8218985868
Some checks failed
teksus default pipeline / cargo test (push) Failing after 1s
Basic bevy text rendering example with rudimentary syntax highlighting
2025年03月09日 17:09:53 +01:00
.forgejo/workflows Update workflow 2025年02月23日 11:39:34 +01:00
assets Basic bevy text rendering example with rudimentary syntax highlighting 2025年03月09日 17:09:53 +01:00
docs Fuck everything 2025年03月08日 22:56:40 +01:00
src Basic bevy text rendering example with rudimentary syntax highlighting 2025年03月09日 17:09:53 +01:00
.gitignore Update the readmy with a nice picture and description 2025年02月20日 08:12:17 +01:00
Cargo.lock Basic bevy text rendering example with rudimentary syntax highlighting 2025年03月09日 17:09:53 +01:00
Cargo.toml Basic bevy text rendering example with rudimentary syntax highlighting 2025年03月09日 17:09:53 +01:00
README.md Display real text in the buffer and configure the window icon 2025年03月08日 18:45:07 +01:00



My attempt at a better (emacs inspired) text editor.

The name

A faux-PIE name, inspired by the root *teks, which is thought to mean "to fashion, to construct" 1 . Since PIE has no surviving phonetic descriptions, there's some freedom in how to pronounce /teksus/. Three suggestions:

  • /tɛkˈsəs/ like "tech sus(picious)"
  • /tɛksʌs/ similar to the first, but pronouncing the u like you would in "fun"
  • /ˈtɛksəs/ like "Texas"

Core concepts

Teksus borrows heavily in design from emacs core concepts, as well as its ecosystem. The goal is to simplify setup and implementation and expand the scope of a few systems through lessions learned from text editors in the last 40 years.

Primarily teksus interacts via command codes or shortcuts (for example <C-c> ("Ctrl + c" in regular-people speak) to copy the selected text). Some built-in modes and plugins may reserve a shortcut as a prefix. When a prefix is triggered it MUST return a minibuffer and specific internal config structure to allow a user to navigate its options in a consistent way (i.e. the way the rest of the editor behaves.)

It is heavily encouraged to create custom binds. The teksus setup wizard may offer some common defaults, but you will still find yourself typing long chords quite frequently.

(theoretic lua schema)

{
 kb_shortcuts: {
 'C-c': {
 	 _mname: 'Core keyboard namespace',
 	 q: core.quit,
 	 c: core.selection.copy,
 	 x: core.selection.cut,
 	 v: core.selection.paste
 	},
 'C-j': {
	 _mname: "Jay's cool namespace",
	 'C-i': core.buffer.switchto_new,
	 }
 }
}
  • Buffer

    :: a read/write text field that represents a file*. A buffer runs a series of "modes". When modes set conflicting configuration during runtime a minibuffer prompt opens for the user to resolve the issue.

  • Minibuffer

    :: a short-lived read/write text prompt for command input/output. Minibuffers may be used to implement custum menu UIs and change to react to new user input. This way an action can be armed, while more configuration can be attached.

    Minibuffers may persist past being de-selected, although no guarantee about cleanup can be made.

  • inputprompt

    :: a one-off write text field which is used for user command input. This is often the first type of prompt the user interacts with, which may then open a minibuffer to offer more specific action parameters.

  • OutputPrompt

    :: a one-off read text field to communicate state changes

  • "Lurker"

    :: a lua worker, that reacts to a specific hook or action.

  • Mode

    :: a mode can take control over the text that is displayed in a buffer or minibuffer. It handles things like syntax highlighting and automatic formatting. A mode may have children, for example in Markdown a code block marked with a particular language can include another mode for syntax highlighting.

Current status

Teksus is not capable of editing its own sources. Let's leave it at that.

License

Teksus is licensed under the GNU General Public License 3.0 or later, bla ble blu


  1. [citation neeed]: this section on the PIE wikipedia talks about words used for crafting/ construction/ and the products thereof and it cites several texts, but at a glance I couldn't verify that this root is actually accurate ↩︎