jaredly / jaredly/treed

LISP editor

Open
#30 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
1.7k
Forks
187
PR merge metrics
No merged PRs in 30d

Description

Cannot believe I just discovered this. I've been planning to make a generic editor for trees for a little over a year. Plus the vim bindings really seals the deal for me. Thanks for publishing this!

I've wanted to write something like this to edit LISPs. Obviously it could be extended to handle other ASTs, but I felt the barrier to entry with a LISP would be lower.

Structured editors like [paredit](https://github.com/emacsmirror/paredit) have a nice vocabulary for editing trees that I think treed could use as a reference for actions it might want to support -- if it doesn't do so already.

One example of this might be "splicing" - e.g. `(1 (2 3 4)) => (1 2 3 4)` if the `(2 3 4)` embedded list was spliced. I think this would be the same as multi-selecting all `2 3 4` children and pressing `Shift+tab` to dedent them, so perhaps it's not worth supporting. The small difference is that it can be invoked when either the `2`, `3`, or `4` node is focused.

I'd be interested to see if there are other verbs that treed could support. I'll take a look when I write a small LISP editor demo.

Contributor guide

No contributing guide indexed for this repository

Research direction

This is an exploratory request for LISP editing support and additional tree-editing verbs, with paredit named as a reference; no files, tests, or entry points are identified. First clarify which actions treed should support and define the intended LISP editor scope before implementation can be considered done.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.