MCPcopy Index your code
hub / github.com/Bruce-Hopkins/code-editor-prototype

github.com/Bruce-Hopkins/code-editor-prototype @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
373 symbols 814 edges 33 files 32 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Code Editor Prototype

Currently, this editor is in pre-alpha. Missing features and bugs are expected.

Description

This is a code editor GUI editor built with Rust and Iced. The goal is to become a highly customizablizable, lightweight editor. With a built in highlighter and LSP support.

Currently, this is only a demo. The editor only highlights Rust, and the LSP client only works with Rust analyzer. Better support for other programming languages will be supported in the future.

Build

For Linux users, libgtk will need to be installed to build the project.

Inside the root of the codebase run

cargo run --release

To receive diagnostics from rust analyzer, install the rust analyzer binary to your $PATH with these instructions.

Usage

  • Type ctrl/command+o to open a new folder
  • Type ctrl/command+p to open a new file
  • Type ctrl/command+s to save the opened file
  • Type ctrl/command+l to display the error of the diagnostic over the cursor. (You can also just click on the diagnostic)

Todo

While the current state of the editor is a great starting point, there's a lot of work that needs to be accomplished before this can be a fully-fledged code editor. That includes:

  • [ ] Adding a scripting language to allow for plugins and extensions.
  • [ ] Upgrading to Iced 0.12
  • [ ] Adding a file explorer
  • [ ] Improving LSP support
  • [ ] Supporting more programming languages

Extension points exported contracts — how you extend this code

SenderState (Interface)
(no doc) [2 implementers]
src/lsp/transport.rs
CursorMessage (Interface)
(no doc) [1 implementers]
src/core/position.rs
ViewPortMessage (Interface)
(no doc) [1 implementers]
src/widgets/view_port.rs

Core symbols most depended-on inside this repo

line
called by 31
src/core/position.rs
can_edit_textbox
called by 28
src/lib.rs
character
called by 24
src/core/position.rs
to_string
called by 24
src/core/document.rs
len
called by 19
src/core/buffer.rs
into
called by 18
src/core/position.rs
children
called by 16
src/widgets/main_view.rs
width
called by 14
src/widgets/main_view.rs

Shape

Method 283
Class 42
Function 31
Enum 14
Interface 3

Languages

Rust100%

Modules by API surface

src/widgets/textbox.rs53 symbols
src/lib.rs38 symbols
src/core/buffer.rs35 symbols
src/lsp/transport.rs32 symbols
src/core/window.rs25 symbols
src/core/position.rs22 symbols
src/core/document.rs22 symbols
src/widgets/textbox_container.rs17 symbols
src/widgets/view_port.rs16 symbols
src/widgets/main_view.rs15 symbols
src/core/selection.rs14 symbols
src/lsp/client.rs13 symbols

For agents

$ claude mcp add code-editor-prototype \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact