├── .gitignore
├── .cargo
└── config.toml
├── assets
├── fonts
│ └── montserrat
│ │ ├── bold.ttf
│ │ ├── italic.ttf
│ │ ├── regular.ttf
│ │ └── OFL.txt
├── icons
│ ├── dash.svg
│ ├── minus.svg
│ ├── check.svg
│ ├── chevron-up.svg
│ ├── plus.svg
│ ├── close.svg
│ ├── moon.svg
│ ├── chevron-down.svg
│ ├── arrow-up.svg
│ ├── chevron-left.svg
│ ├── chevron-right.svg
│ ├── arrow-down.svg
│ ├── loader-circle.svg
│ ├── arrow-left.svg
│ ├── arrow-right.svg
│ ├── circle-check.svg
│ ├── info.svg
│ ├── circle-x.svg
│ ├── search.svg
│ ├── panel-left.svg
│ ├── panel-right.svg
│ ├── asterisk.svg
│ ├── chevrons-up-down.svg
│ ├── panel-bottom.svg
│ ├── bell.svg
│ ├── ellipsis.svg
│ ├── ellipsis-vertical.svg
│ ├── globe.svg
│ ├── menu.svg
│ ├── calendar.svg
│ ├── copy.svg
│ ├── panel-left-open.svg
│ ├── star.svg
│ ├── panel-bottom-open.svg
│ ├── panel-right-open.svg
│ ├── a-large-small.svg
│ ├── delete.svg
│ ├── triangle-alert.svg
│ ├── heart.svg
│ ├── eye.svg
│ ├── maximize.svg
│ ├── star-off.svg
│ ├── inbox.svg
│ ├── minimize.svg
│ ├── thumbs-down.svg
│ ├── thumbs-up.svg
│ ├── sort-ascending.svg
│ ├── sort-descending.svg
│ ├── sun.svg
│ ├── heart-off.svg
│ ├── panel-left-close.svg
│ ├── panel-right-close.svg
│ ├── circle-user.svg
│ ├── settings-2.svg
│ ├── loader.svg
│ ├── bot.svg
│ ├── chart-pie.svg
│ ├── book-open.svg
│ ├── gallery-vertical-end.svg
│ ├── square-terminal.svg
│ ├── eye-off.svg
│ ├── frame.svg
│ ├── map.svg
│ ├── palette.svg
│ ├── layout-dashboard.svg
│ ├── resize-corner.svg
│ ├── github.svg
│ ├── settings.svg
│ ├── window-minimize.svg
│ ├── window-close.svg
│ ├── window-maximize.svg
│ └── window-restore.svg
└── brand
│ ├── icon.svg
│ └── menubar.svg
├── crates
├── settings
│ ├── src
│ │ ├── lib.rs
│ │ ├── files.rs
│ │ └── keymap.rs
│ ├── Cargo.toml
│ └── keymaps
│ │ └── linux-windows.toml
├── editor
│ ├── Cargo.toml
│ └── src
│ │ ├── lib.rs
│ │ ├── markdown.rs
│ │ ├── cursor.rs
│ │ ├── markdown
│ │ ├── skipmap.rs
│ │ └── inline.rs
│ │ ├── actions.rs
│ │ ├── element.rs
│ │ └── editor.rs
└── glyph
│ ├── Cargo.toml
│ └── src
│ ├── fonts.rs
│ ├── assets.rs
│ ├── ui.rs
│ └── main.rs
├── SECURITY.md
├── Cargo.toml
├── example.md
├── LICENSE
├── README.md
├── CODE_OF_CONDUCT.md
├── .github
└── readme_icon.svg
└── legal
└── LICENSE-GPUI-COMPONENTS
/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 |
3 | .idea
--------------------------------------------------------------------------------
/.cargo/config.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | rustflags = ["-C", "link-arg=-z", "-C", "link-arg=nostart-stop-gc"]
3 |
--------------------------------------------------------------------------------
/assets/fonts/montserrat/bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Bloeckchengrafik/glyph/HEAD/assets/fonts/montserrat/bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/montserrat/italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Bloeckchengrafik/glyph/HEAD/assets/fonts/montserrat/italic.ttf
--------------------------------------------------------------------------------
/assets/fonts/montserrat/regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Bloeckchengrafik/glyph/HEAD/assets/fonts/montserrat/regular.ttf
--------------------------------------------------------------------------------
/crates/settings/src/lib.rs:
--------------------------------------------------------------------------------
1 | mod keymap;
2 | mod files;
3 |
4 | use gpui::{App, Window};
5 |
6 | pub fn init(window: &mut Window, cx: &mut App) {
7 | keymap::init(window, cx);
8 | }
9 |
--------------------------------------------------------------------------------
/assets/icons/dash.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/minus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/chevron-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/plus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/moon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/chevron-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/chevron-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/chevron-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/loader-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/circle-check.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/info.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/crates/editor/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "editor"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | gpui.workspace = true
8 | components.workspace = true
9 | log.workspace = true
10 | anyhow.workspace = true
11 |
12 | smallvec = "1.13.2"
13 | unicode-segmentation = "1.12.0"
--------------------------------------------------------------------------------
/assets/icons/circle-x.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/search.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/panel-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/panel-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/crates/settings/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "settings"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | gpui.workspace = true
8 | components.workspace = true
9 | log.workspace = true
10 | anyhow.workspace = true
11 | serde.workspace = true
12 |
13 | toml = "0.8.19"
14 | dirs = "6.0.0"
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | Currently no versions are public nor supported. If you feel like you need to report a security vulnerability anyways, please do so by heading over to the "Security"-Tab in Github and creating a new one.
4 | Reports are processed as I have time, so don't expect same-day resolving.
5 |
--------------------------------------------------------------------------------
/assets/icons/asterisk.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/chevrons-up-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/panel-bottom.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/bell.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/ellipsis.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/ellipsis-vertical.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/globe.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/menu.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/calendar.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/panel-left-open.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/panel-bottom-open.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/panel-right-open.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/a-large-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/delete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/crates/editor/src/lib.rs:
--------------------------------------------------------------------------------
1 | /*
2 | * Editor heavily based on https://github.com/longbridge/gpui-component licensed under Apache-2.0
3 | * See legal/LICENSE-GPUI-COMPONENTS for more information
4 | */
5 | mod actions;
6 | pub mod editor;
7 | mod element;
8 | mod cursor;
9 | mod markdown;
10 |
11 | pub fn init(cx: &mut gpui::App) {
12 | actions::init(cx);
13 | }
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [workspace]
2 | resolver = "2"
3 | members = ["crates/*"]
4 |
5 | [workspace.dependencies]
6 | gpui = { git = "https://github.com/scopeclient/zed.git", branch = "feature/export-platform-window" }
7 | components = { package = "ui", git = "https://github.com/scopeclient/components", version = "0.1.0" }
8 | log = "0.4.25"
9 | anyhow = "1.0.95"
10 | serde = "1.0.217"
--------------------------------------------------------------------------------
/assets/icons/triangle-alert.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/heart.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/eye.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/maximize.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/crates/glyph/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "glyph"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | gpui.workspace = true
8 | components.workspace = true
9 | log.workspace = true
10 | anyhow.workspace = true
11 |
12 | pretty_env_logger = "0.5.0"
13 | rust-embed = "8.5.0"
14 |
15 | editor = { path = "../editor" }
16 | settings = { path = "../settings" }
17 |
--------------------------------------------------------------------------------
/assets/icons/star-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/inbox.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/minimize.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/assets/icons/thumbs-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/thumbs-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/sort-ascending.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/assets/icons/sort-descending.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/assets/icons/sun.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/heart-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/panel-left-close.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/panel-right-close.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/circle-user.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/settings-2.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/assets/icons/loader.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/bot.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/chart-pie.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/book-open.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/assets/icons/gallery-vertical-end.svg:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/example.md:
--------------------------------------------------------------------------------
1 | # Hello Glyph
2 |
3 | This is an example of a Glyph document. It is written in Markdown and can
4 | use *Italic*, **Bold**, and `Code` formatting.
5 |
6 | ## Lists
7 |
8 | - Item 1
9 | - Item 2
10 | - Item 3
11 |
12 | 1. Numbered Item 1
13 | 2. Numbered Item 2
14 | 3. Numbered Item 3
15 |
16 | ## Code
17 |
18 | ```python
19 | print("Hello, World!")
20 | ```
21 |
22 | ## Tables
23 |
24 | | Header 1 | Header 2 |
25 | |----------|----------|
26 | | Cell 1 | Cell 2 |
27 | | Cell 3 | Cell 4 |
28 |
29 |
--------------------------------------------------------------------------------
/crates/glyph/src/fonts.rs:
--------------------------------------------------------------------------------
1 | use gpui::App;
2 |
3 | pub(crate) fn init(app: &mut App) {
4 | app.text_system().add_fonts(vec![
5 | app
6 | .asset_source()
7 | .load("fonts/montserrat/regular.ttf")
8 | .unwrap()
9 | .unwrap(),
10 | app
11 | .asset_source()
12 | .load("fonts/montserrat/bold.ttf")
13 | .unwrap()
14 | .unwrap(),
15 | app
16 | .asset_source()
17 | .load("fonts/montserrat/italic.ttf")
18 | .unwrap()
19 | .unwrap()
20 | ]).unwrap();
21 | }
--------------------------------------------------------------------------------
/assets/icons/square-terminal.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/assets/icons/eye-off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/icons/frame.svg:
--------------------------------------------------------------------------------
1 |
23 |
--------------------------------------------------------------------------------
/assets/icons/map.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/crates/glyph/src/assets.rs:
--------------------------------------------------------------------------------
1 | use gpui::{AssetSource, SharedString};
2 | use gpui::http_client::anyhow;
3 | use anyhow::Result;
4 | use rust_embed::RustEmbed;
5 |
6 | #[derive(RustEmbed)]
7 | #[folder = "../../assets"]
8 | pub struct Assets;
9 |
10 | impl AssetSource for Assets {
11 | fn load(&self, path: &str) -> Result