Compare commits
35 Commits
show-lua-s
...
single-cra
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12c9198fcf | ||
|
|
10784e3f03 | ||
|
|
4dc8bef6de | ||
|
|
69da8bdea7 | ||
|
|
eaf02ef7bd | ||
|
|
b0efc40cb3 | ||
|
|
f6e642a891 | ||
|
|
7b22d555e6 | ||
|
|
923b2e1464 | ||
|
|
a7e8f4face | ||
|
|
74ae682563 | ||
|
|
e5fcee943c | ||
|
|
72c6f82b1a | ||
|
|
3256458494 | ||
|
|
9508f33d71 | ||
|
|
20a5165f5b | ||
|
|
fd7a487c3d | ||
|
|
f393499076 | ||
|
|
94c77be93e | ||
|
|
5e96ecc5bf | ||
|
|
226f945a11 | ||
|
|
228a82ce41 | ||
|
|
ede4a23fc9 | ||
|
|
8bea01faf5 | ||
|
|
f275145a4c | ||
|
|
99fddd8280 | ||
|
|
28921fd632 | ||
|
|
3da964de05 | ||
|
|
a619bc6f95 | ||
|
|
7b4800407e | ||
|
|
35e2831c6d | ||
|
|
8abacd5a50 | ||
|
|
4db0e59fb7 | ||
|
|
d76240d941 | ||
|
|
35aefc6580 |
1055
Cargo.lock
generated
1055
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
62
Cargo.toml
62
Cargo.toml
@@ -1,24 +1,17 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"crates/activity_indicator",
|
||||
"crates/anthropic",
|
||||
"crates/assets",
|
||||
"crates/assistant",
|
||||
"crates/assistant_slash_command",
|
||||
"crates/assistant_tool",
|
||||
"crates/audio",
|
||||
"crates/auto_update",
|
||||
"crates/breadcrumbs",
|
||||
"crates/call",
|
||||
"crates/channel",
|
||||
"crates/cli",
|
||||
"crates/client",
|
||||
"crates/clock",
|
||||
"crates/collab",
|
||||
"crates/collab_ui",
|
||||
"crates/collections",
|
||||
"crates/command_palette",
|
||||
"crates/command_palette_hooks",
|
||||
"crates/context_servers",
|
||||
"crates/copilot",
|
||||
@@ -31,10 +24,8 @@ members = [
|
||||
"crates/extension_api",
|
||||
"crates/extension_cli",
|
||||
"crates/extension_host",
|
||||
"crates/extensions_ui",
|
||||
"crates/feature_flags",
|
||||
"crates/feedback",
|
||||
"crates/file_finder",
|
||||
"crates/file_icons",
|
||||
"crates/fs",
|
||||
"crates/fsevent",
|
||||
@@ -49,13 +40,9 @@ members = [
|
||||
"crates/http_client",
|
||||
"crates/image_viewer",
|
||||
"crates/indexed_docs",
|
||||
"crates/inline_completion_button",
|
||||
"crates/install_cli",
|
||||
"crates/journal",
|
||||
"crates/language",
|
||||
"crates/language_model",
|
||||
"crates/language_selector",
|
||||
"crates/language_tools",
|
||||
"crates/languages",
|
||||
"crates/live_kit_client",
|
||||
"crates/live_kit_server",
|
||||
@@ -70,35 +57,26 @@ members = [
|
||||
"crates/ollama",
|
||||
"crates/open_ai",
|
||||
"crates/outline",
|
||||
"crates/outline_panel",
|
||||
"crates/paths",
|
||||
"crates/picker",
|
||||
"crates/prettier",
|
||||
"crates/project",
|
||||
"crates/project_panel",
|
||||
"crates/project_symbols",
|
||||
"crates/proto",
|
||||
"crates/quick_action_bar",
|
||||
"crates/recent_projects",
|
||||
"crates/refineable",
|
||||
"crates/refineable/derive_refineable",
|
||||
"crates/release_channel",
|
||||
"crates/remote",
|
||||
"crates/remote_server",
|
||||
"crates/repl",
|
||||
"crates/reqwest_client",
|
||||
"crates/rich_text",
|
||||
"crates/rope",
|
||||
"crates/rpc",
|
||||
"crates/search",
|
||||
"crates/semantic_index",
|
||||
"crates/semantic_version",
|
||||
"crates/session",
|
||||
"crates/settings",
|
||||
"crates/settings_ui",
|
||||
"crates/snippet",
|
||||
"crates/snippet_provider",
|
||||
"crates/snippets_ui",
|
||||
"crates/sqlez",
|
||||
"crates/sqlez_macros",
|
||||
"crates/story",
|
||||
@@ -106,31 +84,24 @@ members = [
|
||||
"crates/sum_tree",
|
||||
"crates/supermaven",
|
||||
"crates/supermaven_api",
|
||||
"crates/tab_switcher",
|
||||
"crates/task",
|
||||
"crates/tasks_ui",
|
||||
"crates/telemetry_events",
|
||||
"crates/terminal",
|
||||
"crates/terminal_view",
|
||||
"crates/text",
|
||||
"crates/theme",
|
||||
"crates/theme_importer",
|
||||
"crates/theme_selector",
|
||||
"crates/time_format",
|
||||
"crates/title_bar",
|
||||
"crates/toolchain_selector",
|
||||
"crates/ui",
|
||||
"crates/ui_input",
|
||||
"crates/ui_macros",
|
||||
"crates/reqwest_client",
|
||||
"crates/util",
|
||||
"crates/vcs_menu",
|
||||
"crates/vim",
|
||||
"crates/welcome",
|
||||
"crates/workspace",
|
||||
"crates/worktree",
|
||||
"crates/zed",
|
||||
"crates/zed_actions",
|
||||
"crates/zed_common",
|
||||
|
||||
#
|
||||
# Extensions
|
||||
@@ -177,25 +148,18 @@ default-members = ["crates/zed"]
|
||||
# Workspace member crates
|
||||
#
|
||||
|
||||
activity_indicator = { path = "crates/activity_indicator" }
|
||||
ai = { path = "crates/ai" }
|
||||
anthropic = { path = "crates/anthropic" }
|
||||
assets = { path = "crates/assets" }
|
||||
assistant = { path = "crates/assistant" }
|
||||
assistant_slash_command = { path = "crates/assistant_slash_command" }
|
||||
assistant_tool = { path = "crates/assistant_tool" }
|
||||
audio = { path = "crates/audio" }
|
||||
auto_update = { path = "crates/auto_update" }
|
||||
breadcrumbs = { path = "crates/breadcrumbs" }
|
||||
call = { path = "crates/call" }
|
||||
channel = { path = "crates/channel" }
|
||||
cli = { path = "crates/cli" }
|
||||
client = { path = "crates/client" }
|
||||
clock = { path = "crates/clock" }
|
||||
collab = { path = "crates/collab" }
|
||||
collab_ui = { path = "crates/collab_ui" }
|
||||
collections = { path = "crates/collections" }
|
||||
command_palette = { path = "crates/command_palette" }
|
||||
command_palette_hooks = { path = "crates/command_palette_hooks" }
|
||||
context_servers = { path = "crates/context_servers" }
|
||||
copilot = { path = "crates/copilot" }
|
||||
@@ -204,10 +168,8 @@ diagnostics = { path = "crates/diagnostics" }
|
||||
editor = { path = "crates/editor" }
|
||||
extension = { path = "crates/extension" }
|
||||
extension_host = { path = "crates/extension_host" }
|
||||
extensions_ui = { path = "crates/extensions_ui" }
|
||||
feature_flags = { path = "crates/feature_flags" }
|
||||
feedback = { path = "crates/feedback" }
|
||||
file_finder = { path = "crates/file_finder" }
|
||||
file_icons = { path = "crates/file_icons" }
|
||||
fs = { path = "crates/fs" }
|
||||
fsevent = { path = "crates/fsevent" }
|
||||
@@ -222,13 +184,9 @@ html_to_markdown = { path = "crates/html_to_markdown" }
|
||||
http_client = { path = "crates/http_client" }
|
||||
image_viewer = { path = "crates/image_viewer" }
|
||||
indexed_docs = { path = "crates/indexed_docs" }
|
||||
inline_completion_button = { path = "crates/inline_completion_button" }
|
||||
install_cli = { path = "crates/install_cli" }
|
||||
journal = { path = "crates/journal" }
|
||||
language = { path = "crates/language" }
|
||||
language_model = { path = "crates/language_model" }
|
||||
language_selector = { path = "crates/language_selector" }
|
||||
language_tools = { path = "crates/language_tools" }
|
||||
languages = { path = "crates/languages" }
|
||||
live_kit_client = { path = "crates/live_kit_client" }
|
||||
live_kit_server = { path = "crates/live_kit_server" }
|
||||
@@ -243,36 +201,27 @@ notifications = { path = "crates/notifications" }
|
||||
ollama = { path = "crates/ollama" }
|
||||
open_ai = { path = "crates/open_ai" }
|
||||
outline = { path = "crates/outline" }
|
||||
outline_panel = { path = "crates/outline_panel" }
|
||||
paths = { path = "crates/paths" }
|
||||
picker = { path = "crates/picker" }
|
||||
plugin = { path = "crates/plugin" }
|
||||
plugin_macros = { path = "crates/plugin_macros" }
|
||||
prettier = { path = "crates/prettier" }
|
||||
project = { path = "crates/project" }
|
||||
project_panel = { path = "crates/project_panel" }
|
||||
project_symbols = { path = "crates/project_symbols" }
|
||||
proto = { path = "crates/proto" }
|
||||
quick_action_bar = { path = "crates/quick_action_bar" }
|
||||
recent_projects = { path = "crates/recent_projects" }
|
||||
refineable = { path = "crates/refineable" }
|
||||
release_channel = { path = "crates/release_channel" }
|
||||
remote = { path = "crates/remote" }
|
||||
remote_server = { path = "crates/remote_server" }
|
||||
repl = { path = "crates/repl" }
|
||||
reqwest_client = { path = "crates/reqwest_client" }
|
||||
rich_text = { path = "crates/rich_text" }
|
||||
rope = { path = "crates/rope" }
|
||||
rpc = { path = "crates/rpc" }
|
||||
search = { path = "crates/search" }
|
||||
semantic_index = { path = "crates/semantic_index" }
|
||||
semantic_version = { path = "crates/semantic_version" }
|
||||
session = { path = "crates/session" }
|
||||
settings = { path = "crates/settings" }
|
||||
settings_ui = { path = "crates/settings_ui" }
|
||||
snippet = { path = "crates/snippet" }
|
||||
snippet_provider = { path = "crates/snippet_provider" }
|
||||
snippets_ui = { path = "crates/snippets_ui" }
|
||||
sqlez = { path = "crates/sqlez" }
|
||||
sqlez_macros = { path = "crates/sqlez_macros" }
|
||||
story = { path = "crates/story" }
|
||||
@@ -280,30 +229,23 @@ storybook = { path = "crates/storybook" }
|
||||
sum_tree = { path = "crates/sum_tree" }
|
||||
supermaven = { path = "crates/supermaven" }
|
||||
supermaven_api = { path = "crates/supermaven_api" }
|
||||
tab_switcher = { path = "crates/tab_switcher" }
|
||||
task = { path = "crates/task" }
|
||||
tasks_ui = { path = "crates/tasks_ui" }
|
||||
telemetry_events = { path = "crates/telemetry_events" }
|
||||
terminal = { path = "crates/terminal" }
|
||||
terminal_view = { path = "crates/terminal_view" }
|
||||
text = { path = "crates/text" }
|
||||
theme = { path = "crates/theme" }
|
||||
theme_importer = { path = "crates/theme_importer" }
|
||||
theme_selector = { path = "crates/theme_selector" }
|
||||
time_format = { path = "crates/time_format" }
|
||||
title_bar = { path = "crates/title_bar" }
|
||||
toolchain_selector = { path = "crates/toolchain_selector" }
|
||||
ui = { path = "crates/ui" }
|
||||
ui_input = { path = "crates/ui_input" }
|
||||
ui_macros = { path = "crates/ui_macros" }
|
||||
util = { path = "crates/util" }
|
||||
vcs_menu = { path = "crates/vcs_menu" }
|
||||
vim = { path = "crates/vim" }
|
||||
welcome = { path = "crates/welcome" }
|
||||
workspace = { path = "crates/workspace" }
|
||||
worktree = { path = "crates/worktree" }
|
||||
zed = { path = "crates/zed" }
|
||||
zed_actions = { path = "crates/zed_actions" }
|
||||
zed_common = { path = "crates/zed_common" }
|
||||
|
||||
#
|
||||
# External crates
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
[package]
|
||||
name = "activity_indicator"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/activity_indicator.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
auto_update.workspace = true
|
||||
editor.workspace = true
|
||||
extension_host.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
lsp.workspace = true
|
||||
project.workspace = true
|
||||
smallvec.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,106 +0,0 @@
|
||||
[package]
|
||||
name = "assistant"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/assistant.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
test-support = [
|
||||
"editor/test-support",
|
||||
"language/test-support",
|
||||
"project/test-support",
|
||||
"text/test-support",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
anthropic = { workspace = true, features = ["schemars"] }
|
||||
anyhow.workspace = true
|
||||
assets.workspace = true
|
||||
assistant_slash_command.workspace = true
|
||||
assistant_tool.workspace = true
|
||||
async-watch.workspace = true
|
||||
cargo_toml.workspace = true
|
||||
chrono.workspace = true
|
||||
client.workspace = true
|
||||
clock.workspace = true
|
||||
collections.workspace = true
|
||||
command_palette_hooks.workspace = true
|
||||
context_servers.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
feature_flags.workspace = true
|
||||
fs.workspace = true
|
||||
futures.workspace = true
|
||||
fuzzy.workspace = true
|
||||
globset.workspace = true
|
||||
gpui.workspace = true
|
||||
handlebars.workspace = true
|
||||
heed.workspace = true
|
||||
html_to_markdown.workspace = true
|
||||
http_client.workspace = true
|
||||
indexed_docs.workspace = true
|
||||
indoc.workspace = true
|
||||
language.workspace = true
|
||||
language_model.workspace = true
|
||||
log.workspace = true
|
||||
lsp.workspace = true
|
||||
markdown.workspace = true
|
||||
menu.workspace = true
|
||||
multi_buffer.workspace = true
|
||||
ollama = { workspace = true, features = ["schemars"] }
|
||||
open_ai = { workspace = true, features = ["schemars"] }
|
||||
ordered-float.workspace = true
|
||||
parking_lot.workspace = true
|
||||
paths.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
proto.workspace = true
|
||||
regex.workspace = true
|
||||
release_channel.workspace = true
|
||||
rope.workspace = true
|
||||
rpc.workspace = true
|
||||
schemars.workspace = true
|
||||
search.workspace = true
|
||||
semantic_index.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
similar.workspace = true
|
||||
smallvec.workspace = true
|
||||
smol.workspace = true
|
||||
strum.workspace = true
|
||||
telemetry_events.workspace = true
|
||||
terminal.workspace = true
|
||||
terminal_view.workspace = true
|
||||
text.workspace = true
|
||||
theme.workspace = true
|
||||
toml.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
uuid.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
language_model = { workspace = true, features = ["test-support"] }
|
||||
languages = { workspace = true, features = ["test-support"] }
|
||||
log.workspace = true
|
||||
pretty_assertions.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
rand.workspace = true
|
||||
serde_json_lenient.workspace = true
|
||||
text = { workspace = true, features = ["test-support"] }
|
||||
tree-sitter-md.workspace = true
|
||||
unindent.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,30 +0,0 @@
|
||||
[package]
|
||||
name = "assistant_slash_command"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/assistant_slash_command.rs"
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
collections.workspace = true
|
||||
derive_more.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
language_model.workspace = true
|
||||
parking_lot.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,36 +0,0 @@
|
||||
[package]
|
||||
name = "auto_update"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/auto_update.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
client.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
gpui.workspace = true
|
||||
http_client.workspace = true
|
||||
log.workspace = true
|
||||
markdown_preview.workspace = true
|
||||
menu.workspace = true
|
||||
paths.workspace = true
|
||||
release_channel.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smol.workspace = true
|
||||
tempfile.workspace = true
|
||||
util.workspace = true
|
||||
which.workspace = true
|
||||
workspace.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,27 +0,0 @@
|
||||
[package]
|
||||
name = "breadcrumbs"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/breadcrumbs.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
editor.workspace = true
|
||||
gpui.workspace = true
|
||||
itertools.workspace = true
|
||||
outline.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -77,18 +77,15 @@ util.workspace = true
|
||||
uuid.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
assistant = { workspace = true, features = ["test-support"] }
|
||||
async-trait.workspace = true
|
||||
audio.workspace = true
|
||||
call = { workspace = true, features = ["test-support"] }
|
||||
channel.workspace = true
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
collab_ui = { workspace = true, features = ["test-support"] }
|
||||
collections = { workspace = true, features = ["test-support"] }
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
file_finder.workspace = true
|
||||
fs = { workspace = true, features = ["test-support"] }
|
||||
git = { workspace = true, features = ["test-support"] }
|
||||
git_hosting_providers.workspace = true
|
||||
@@ -96,7 +93,6 @@ gpui = { workspace = true, features = ["test-support"] }
|
||||
hyper.workspace = true
|
||||
indoc.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
language_model = { workspace = true, features = ["test-support"] }
|
||||
live_kit_client = { workspace = true, features = ["test-support"] }
|
||||
lsp = { workspace = true, features = ["test-support"] }
|
||||
menu.workspace = true
|
||||
@@ -105,7 +101,6 @@ node_runtime.workspace = true
|
||||
notifications = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
recent_projects = { workspace = true }
|
||||
release_channel.workspace = true
|
||||
remote = { workspace = true, features = ["test-support"] }
|
||||
remote_server.workspace = true
|
||||
@@ -120,6 +115,7 @@ unindent.workspace = true
|
||||
util.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
worktree = { workspace = true, features = ["test-support"] }
|
||||
zed_common = { workspace = true, features = ["test-support"] }
|
||||
|
||||
[package.metadata.cargo-machete]
|
||||
ignored = ["async-stripe"]
|
||||
|
||||
@@ -5,7 +5,6 @@ use crate::{
|
||||
use call::ActiveCall;
|
||||
use channel::ACKNOWLEDGE_DEBOUNCE_INTERVAL;
|
||||
use client::{Collaborator, ParticipantIndex, UserId};
|
||||
use collab_ui::channel_view::ChannelView;
|
||||
use collections::HashMap;
|
||||
use editor::{Anchor, Editor, ToOffset};
|
||||
use futures::future;
|
||||
@@ -13,6 +12,7 @@ use gpui::{BackgroundExecutor, Model, TestAppContext, ViewContext};
|
||||
use rpc::{proto::PeerId, RECEIVE_TIMEOUT};
|
||||
use serde_json::json;
|
||||
use std::ops::Range;
|
||||
use zed_common::collab_ui::channel_view::ChannelView;
|
||||
|
||||
#[gpui::test]
|
||||
async fn test_core_channel_buffers(
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use crate::{rpc::RECONNECT_TIMEOUT, tests::TestServer};
|
||||
use channel::{ChannelChat, ChannelMessageId, MessageParams};
|
||||
use collab_ui::chat_panel::ChatPanel;
|
||||
use gpui::{BackgroundExecutor, Model, TestAppContext};
|
||||
use rpc::Notification;
|
||||
use workspace::dock::Panel;
|
||||
use zed_common::collab_ui::chat_panel::ChatPanel;
|
||||
|
||||
#[gpui::test]
|
||||
async fn test_basic_channel_messages(
|
||||
@@ -351,7 +351,7 @@ async fn test_channel_message_changes(
|
||||
|
||||
// Opening the chat should clear the changed flag.
|
||||
cx_b.update(|cx| {
|
||||
collab_ui::init(&client_b.app_state, cx);
|
||||
zed_common::collab_ui::init(&client_b.app_state, cx);
|
||||
});
|
||||
let project_b = client_b.build_empty_local_project(cx_b);
|
||||
let (workspace_b, cx_b) = client_b.build_workspace(&project_b, cx_b);
|
||||
|
||||
@@ -25,7 +25,6 @@ use project::{
|
||||
project_settings::{InlineBlameSettings, ProjectSettings},
|
||||
SERVER_PROGRESS_THROTTLE_TIMEOUT,
|
||||
};
|
||||
use recent_projects::disconnected_overlay::DisconnectedOverlay;
|
||||
use rpc::RECEIVE_TIMEOUT;
|
||||
use serde_json::json;
|
||||
use settings::SettingsStore;
|
||||
@@ -39,6 +38,7 @@ use std::{
|
||||
};
|
||||
use text::Point;
|
||||
use workspace::{CloseIntent, Workspace};
|
||||
use zed_common::recent_projects::disconnected_overlay::DisconnectedOverlay;
|
||||
|
||||
#[gpui::test(iterations = 10)]
|
||||
async fn test_host_disconnect(
|
||||
@@ -55,7 +55,7 @@ async fn test_host_disconnect(
|
||||
.await;
|
||||
|
||||
cx_b.update(editor::init);
|
||||
cx_b.update(recent_projects::init);
|
||||
cx_b.update(zed_common::recent_projects::init);
|
||||
|
||||
client_a
|
||||
.fs()
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
use crate::{rpc::RECONNECT_TIMEOUT, tests::TestServer};
|
||||
use call::{ActiveCall, ParticipantLocation};
|
||||
use client::ChannelId;
|
||||
use collab_ui::{
|
||||
channel_view::ChannelView,
|
||||
notifications::project_shared_notification::ProjectSharedNotification,
|
||||
};
|
||||
use editor::{Editor, ExcerptRange, MultiBuffer};
|
||||
use gpui::{
|
||||
point, BackgroundExecutor, BorrowAppContext, Context, Entity, SharedString, TestAppContext,
|
||||
@@ -23,6 +19,10 @@ use workspace::{
|
||||
shared_screen::SharedScreen,
|
||||
SplitDirection, Workspace,
|
||||
};
|
||||
use zed_common::collab_ui::{
|
||||
channel_view::ChannelView,
|
||||
notifications::project_shared_notification::ProjectSharedNotification,
|
||||
};
|
||||
|
||||
use super::TestClient;
|
||||
|
||||
@@ -1861,9 +1861,9 @@ async fn test_following_to_channel_notes_without_a_shared_project(
|
||||
cx_a.update(editor::init);
|
||||
cx_b.update(editor::init);
|
||||
cx_c.update(editor::init);
|
||||
cx_a.update(collab_ui::channel_view::init);
|
||||
cx_b.update(collab_ui::channel_view::init);
|
||||
cx_c.update(collab_ui::channel_view::init);
|
||||
cx_a.update(zed_common::collab_ui::channel_view::init);
|
||||
cx_b.update(zed_common::collab_ui::channel_view::init);
|
||||
cx_c.update(zed_common::collab_ui::channel_view::init);
|
||||
|
||||
let channel_1_id = server
|
||||
.make_channel(
|
||||
|
||||
@@ -6,7 +6,6 @@ use crate::{
|
||||
},
|
||||
};
|
||||
use anyhow::{anyhow, Result};
|
||||
use assistant::{ContextStore, PromptBuilder, SlashCommandWorkingSet, ToolWorkingSet};
|
||||
use call::{room, ActiveCall, ParticipantLocation, Room};
|
||||
use client::{User, RECEIVE_TIMEOUT};
|
||||
use collections::{HashMap, HashSet};
|
||||
@@ -48,6 +47,7 @@ use std::{
|
||||
};
|
||||
use unindent::Unindent as _;
|
||||
use workspace::Pane;
|
||||
use zed_common::assistant::{ContextStore, PromptBuilder, SlashCommandWorkingSet, ToolWorkingSet};
|
||||
|
||||
#[ctor::ctor]
|
||||
fn init_logger() {
|
||||
|
||||
@@ -12,7 +12,6 @@ use client::{
|
||||
UserStore,
|
||||
};
|
||||
use clock::FakeSystemClock;
|
||||
use collab_ui::channel_view::ChannelView;
|
||||
use collections::{HashMap, HashSet};
|
||||
use fs::FakeFs;
|
||||
use futures::{channel::oneshot, StreamExt as _};
|
||||
@@ -44,6 +43,7 @@ use std::{
|
||||
},
|
||||
};
|
||||
use workspace::{Workspace, WorkspaceStore};
|
||||
use zed_common::collab_ui::channel_view::ChannelView;
|
||||
|
||||
pub struct TestServer {
|
||||
pub app_state: Arc<AppState>,
|
||||
@@ -293,12 +293,12 @@ impl TestServer {
|
||||
call::init(client.clone(), user_store.clone(), cx);
|
||||
channel::init(&client, user_store.clone(), cx);
|
||||
notifications::init(client.clone(), user_store, cx);
|
||||
collab_ui::init(&app_state, cx);
|
||||
file_finder::init(cx);
|
||||
zed_common::collab_ui::init(&app_state, cx);
|
||||
zed_common::file_finder::init(cx);
|
||||
menu::init();
|
||||
settings::KeymapFile::load_asset(os_keymap, cx).unwrap();
|
||||
language_model::LanguageModelRegistry::test(cx);
|
||||
assistant::context_store::init(&client.clone().into());
|
||||
zed_common::language_model::LanguageModelRegistry::test(cx);
|
||||
zed_common::assistant::context_store::init(&client.clone().into());
|
||||
});
|
||||
|
||||
client
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
[package]
|
||||
name = "collab_ui"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/collab_ui.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
default = []
|
||||
stories = ["dep:story"]
|
||||
test-support = [
|
||||
"call/test-support",
|
||||
"client/test-support",
|
||||
"collections/test-support",
|
||||
"editor/test-support",
|
||||
"gpui/test-support",
|
||||
"project/test-support",
|
||||
"settings/test-support",
|
||||
"util/test-support",
|
||||
"workspace/test-support",
|
||||
"http_client/test-support",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
call.workspace = true
|
||||
channel.workspace = true
|
||||
chrono.workspace = true
|
||||
client.workspace = true
|
||||
collections.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
emojis.workspace = true
|
||||
futures.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
menu.workspace = true
|
||||
notifications.workspace = true
|
||||
parking_lot.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
release_channel.workspace = true
|
||||
rich_text.workspace = true
|
||||
rpc.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smallvec.workspace = true
|
||||
story = { workspace = true, optional = true }
|
||||
theme.workspace = true
|
||||
time_format.workspace = true
|
||||
time.workspace = true
|
||||
title_bar.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
vcs_menu.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
call = { workspace = true, features = ["test-support"] }
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
collections = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
notifications = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
rpc = { workspace = true, features = ["test-support"] }
|
||||
settings = { workspace = true, features = ["test-support"] }
|
||||
tree-sitter-md.workspace = true
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
http_client = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,41 +0,0 @@
|
||||
[package]
|
||||
name = "command_palette"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/command_palette.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
client.workspace = true
|
||||
collections.workspace = true
|
||||
command_palette_hooks.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
picker.workspace = true
|
||||
postage.workspace = true
|
||||
serde.workspace = true
|
||||
settings.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
go_to_line.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
menu.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -30,9 +30,9 @@ languages.workspace = true
|
||||
node_runtime.workspace = true
|
||||
open_ai.workspace = true
|
||||
project.workspace = true
|
||||
semantic_index.workspace = true
|
||||
reqwest_client.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smol.workspace = true
|
||||
reqwest_client.workspace = true
|
||||
zed_common.workspace = true
|
||||
|
||||
@@ -13,9 +13,6 @@ use node_runtime::NodeRuntime;
|
||||
use open_ai::OpenAiEmbeddingModel;
|
||||
use project::Project;
|
||||
use reqwest_client::ReqwestClient;
|
||||
use semantic_index::{
|
||||
EmbeddingProvider, OpenAiEmbeddingProvider, ProjectIndex, SemanticDb, Status,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use settings::SettingsStore;
|
||||
use smol::channel::bounded;
|
||||
@@ -33,6 +30,9 @@ use std::{
|
||||
Arc,
|
||||
},
|
||||
};
|
||||
use zed_common::semantic_index::{
|
||||
EmbeddingProvider, OpenAiEmbeddingProvider, ProjectIndex, SemanticDb, Status,
|
||||
};
|
||||
|
||||
const CODESEARCH_NET_DIR: &'static str = "target/datasets/code-search-net";
|
||||
const EVAL_REPOS_DIR: &'static str = "target/datasets/eval-repos";
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
[package]
|
||||
name = "extensions_ui"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/extensions_ui.rs"
|
||||
|
||||
[features]
|
||||
test-support = []
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
assistant_slash_command.workspace = true
|
||||
async-trait.workspace = true
|
||||
client.workspace = true
|
||||
collections.workspace = true
|
||||
context_servers.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
extension_host.workspace = true
|
||||
fs.workspace = true
|
||||
futures.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
indexed_docs.workspace = true
|
||||
language.workspace = true
|
||||
lsp.workspace = true
|
||||
num-format.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
release_channel.workspace = true
|
||||
semantic_version.workspace = true
|
||||
serde.workspace = true
|
||||
settings.workspace = true
|
||||
smallvec.workspace = true
|
||||
snippet_provider.workspace = true
|
||||
theme.workspace = true
|
||||
theme_selector.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
vim.workspace = true
|
||||
wasmtime-wasi.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
async-compression.workspace = true
|
||||
async-tar.workspace = true
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
extension_host = {workspace = true, features = ["test-support"] }
|
||||
fs = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
http_client.workspace = true
|
||||
indexed_docs.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
lsp.workspace = true
|
||||
node_runtime.workspace = true
|
||||
parking_lot.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
reqwest_client.workspace = true
|
||||
serde_json.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,45 +0,0 @@
|
||||
[package]
|
||||
name = "file_finder"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/file_finder.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
collections.workspace = true
|
||||
editor.workspace = true
|
||||
file_icons.workspace = true
|
||||
futures.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
menu.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
schemars.workspace = true
|
||||
settings.workspace = true
|
||||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
text.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
picker = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
theme = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,38 +0,0 @@
|
||||
[package]
|
||||
name = "inline_completion_button"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/inline_completion_button.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
copilot.workspace = true
|
||||
editor.workspace = true
|
||||
fs.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
paths.workspace = true
|
||||
settings.workspace = true
|
||||
supermaven.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
copilot = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
futures.workspace = true
|
||||
indoc.workspace = true
|
||||
lsp = { workspace = true, features = ["test-support"] }
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
theme = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,69 +0,0 @@
|
||||
[package]
|
||||
name = "language_model"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/language_model.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
test-support = [
|
||||
"editor/test-support",
|
||||
"language/test-support",
|
||||
"project/test-support",
|
||||
"text/test-support",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
anthropic = { workspace = true, features = ["schemars"] }
|
||||
anyhow.workspace = true
|
||||
client.workspace = true
|
||||
collections.workspace = true
|
||||
copilot = { workspace = true, features = ["schemars"] }
|
||||
editor.workspace = true
|
||||
feature_flags.workspace = true
|
||||
futures.workspace = true
|
||||
google_ai = { workspace = true, features = ["schemars"] }
|
||||
gpui.workspace = true
|
||||
http_client.workspace = true
|
||||
inline_completion_button.workspace = true
|
||||
log.workspace = true
|
||||
menu.workspace = true
|
||||
ollama = { workspace = true, features = ["schemars"] }
|
||||
open_ai = { workspace = true, features = ["schemars"] }
|
||||
parking_lot.workspace = true
|
||||
proto.workspace = true
|
||||
project.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smol.workspace = true
|
||||
strum.workspace = true
|
||||
telemetry_events.workspace = true
|
||||
theme.workspace = true
|
||||
thiserror.workspace = true
|
||||
tiktoken-rs.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
base64.workspace = true
|
||||
image.workspace = true
|
||||
|
||||
|
||||
[dev-dependencies]
|
||||
ctor.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
log.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
proto = { workspace = true, features = ["test-support"] }
|
||||
rand.workspace = true
|
||||
text = { workspace = true, features = ["test-support"] }
|
||||
unindent.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,28 +0,0 @@
|
||||
[package]
|
||||
name = "language_selector"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/language_selector.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
editor.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,40 +0,0 @@
|
||||
[package]
|
||||
name = "language_tools"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/language_tools.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
collections.workspace = true
|
||||
copilot.workspace = true
|
||||
editor.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
itertools.workspace = true
|
||||
language.workspace = true
|
||||
lsp.workspace = true
|
||||
project.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
theme.workspace = true
|
||||
tree-sitter.workspace = true
|
||||
ui.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
release_channel.workspace = true
|
||||
env_logger.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,47 +0,0 @@
|
||||
[package]
|
||||
name = "outline_panel"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/outline_panel.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
collections.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
file_icons.workspace = true
|
||||
fuzzy.workspace = true
|
||||
itertools.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
log.workspace = true
|
||||
menu.workspace = true
|
||||
outline.workspace = true
|
||||
project.workspace = true
|
||||
schemars.workspace = true
|
||||
search.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smallvec.workspace = true
|
||||
smol.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
worktree.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
search = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions.workspace = true
|
||||
|
||||
[package.metadata.cargo-machete]
|
||||
ignored = ["log"]
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,47 +0,0 @@
|
||||
[package]
|
||||
name = "project_panel"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/project_panel.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
collections.workspace = true
|
||||
db.workspace = true
|
||||
editor.workspace = true
|
||||
file_icons.workspace = true
|
||||
indexmap.workspace = true
|
||||
git.workspace = true
|
||||
gpui.workspace = true
|
||||
menu.workspace = true
|
||||
pretty_assertions.workspace = true
|
||||
project.workspace = true
|
||||
schemars.workspace = true
|
||||
search.workspace = true
|
||||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smallvec.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
client.workspace = true
|
||||
worktree.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,39 +0,0 @@
|
||||
[package]
|
||||
name = "project_symbols"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/project_symbols.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
editor.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
ordered-float.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
theme.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
futures.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
lsp = { workspace = true, features = ["test-support"] }
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
release_channel.workspace = true
|
||||
settings = { workspace = true, features = ["test-support"] }
|
||||
theme = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,32 +0,0 @@
|
||||
[package]
|
||||
name = "quick_action_bar"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/quick_action_bar.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
assistant.workspace = true
|
||||
editor.workspace = true
|
||||
gpui.workspace = true
|
||||
markdown_preview.workspace = true
|
||||
repl.workspace = true
|
||||
search.workspace = true
|
||||
settings.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
picker.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,50 +0,0 @@
|
||||
[package]
|
||||
name = "recent_projects"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/recent_projects.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
auto_update.workspace = true
|
||||
release_channel.workspace = true
|
||||
editor.workspace = true
|
||||
file_finder.workspace = true
|
||||
futures.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
itertools.workspace = true
|
||||
log.workspace = true
|
||||
language.workspace = true
|
||||
markdown.workspace = true
|
||||
menu.workspace = true
|
||||
ordered-float.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
remote.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
settings.workspace = true
|
||||
smol.workspace = true
|
||||
task.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
paths.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
settings = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,67 +0,0 @@
|
||||
[package]
|
||||
name = "repl"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/repl.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
alacritty_terminal.workspace = true
|
||||
anyhow.workspace = true
|
||||
async-dispatcher.workspace = true
|
||||
base64.workspace = true
|
||||
client.workspace = true
|
||||
collections.workspace = true
|
||||
command_palette_hooks.workspace = true
|
||||
editor.workspace = true
|
||||
feature_flags.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
image.workspace = true
|
||||
language.workspace = true
|
||||
log.workspace = true
|
||||
markdown_preview.workspace = true
|
||||
menu.workspace = true
|
||||
multi_buffer.workspace = true
|
||||
nbformat.workspace = true
|
||||
project.workspace = true
|
||||
runtimelib.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
smol.workspace = true
|
||||
terminal.workspace = true
|
||||
terminal_view.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
uuid.workspace = true
|
||||
workspace.workspace = true
|
||||
picker.workspace = true
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
windows.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
http_client = { workspace = true, features = ["test-support"] }
|
||||
indoc.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
languages = { workspace = true, features = ["test-support"] }
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
settings = { workspace = true, features = ["test-support"] }
|
||||
theme = { workspace = true, features = ["test-support"] }
|
||||
tree-sitter-md.workspace = true
|
||||
tree-sitter-typescript.workspace = true
|
||||
tree-sitter-python.workspace = true
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,67 +0,0 @@
|
||||
[package]
|
||||
name = "semantic_index"
|
||||
description = "Process, chunk, and embed text as vectors for semantic search."
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/semantic_index.rs"
|
||||
|
||||
[[example]]
|
||||
name = "index"
|
||||
path = "examples/index.rs"
|
||||
crate-type = ["bin"]
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
arrayvec.workspace = true
|
||||
blake3.workspace = true
|
||||
client.workspace = true
|
||||
clock.workspace = true
|
||||
collections.workspace = true
|
||||
feature_flags.workspace = true
|
||||
fs.workspace = true
|
||||
futures-batch.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
heed.workspace = true
|
||||
http_client.workspace = true
|
||||
language.workspace = true
|
||||
language_model.workspace = true
|
||||
log.workspace = true
|
||||
open_ai.workspace = true
|
||||
parking_lot.workspace = true
|
||||
project.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
sha2.workspace = true
|
||||
smol.workspace = true
|
||||
theme.workspace = true
|
||||
tree-sitter.workspace = true
|
||||
ui. workspace = true
|
||||
unindent.workspace = true
|
||||
util. workspace = true
|
||||
workspace.workspace = true
|
||||
worktree.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
env_logger.workspace = true
|
||||
fs = { workspace = true, features = ["test-support"] }
|
||||
futures.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
http_client = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
languages.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
tempfile.workspace = true
|
||||
reqwest_client.workspace = true
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
worktree = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,140 +0,0 @@
|
||||
use client::Client;
|
||||
use futures::channel::oneshot;
|
||||
use gpui::App;
|
||||
use http_client::HttpClientWithUrl;
|
||||
use language::language_settings::AllLanguageSettings;
|
||||
use project::Project;
|
||||
use semantic_index::{OpenAiEmbeddingModel, OpenAiEmbeddingProvider, SemanticDb};
|
||||
use settings::SettingsStore;
|
||||
use std::{
|
||||
path::{Path, PathBuf},
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
fn main() {
|
||||
env_logger::init();
|
||||
|
||||
use clock::FakeSystemClock;
|
||||
|
||||
App::new().run(|cx| {
|
||||
let store = SettingsStore::test(cx);
|
||||
cx.set_global(store);
|
||||
language::init(cx);
|
||||
Project::init_settings(cx);
|
||||
SettingsStore::update(cx, |store, cx| {
|
||||
store.update_user_settings::<AllLanguageSettings>(cx, |_| {});
|
||||
});
|
||||
|
||||
let clock = Arc::new(FakeSystemClock::default());
|
||||
|
||||
let http = Arc::new(HttpClientWithUrl::new(
|
||||
Arc::new(
|
||||
reqwest_client::ReqwestClient::user_agent("Zed semantic index example").unwrap(),
|
||||
),
|
||||
"http://localhost:11434",
|
||||
None,
|
||||
));
|
||||
let client = client::Client::new(clock, http.clone(), cx);
|
||||
Client::set_global(client.clone(), cx);
|
||||
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
if args.len() < 2 {
|
||||
eprintln!("Usage: cargo run --example index -p semantic_index -- <project_path>");
|
||||
cx.quit();
|
||||
return;
|
||||
}
|
||||
|
||||
// let embedding_provider = semantic_index::FakeEmbeddingProvider;
|
||||
|
||||
let api_key = std::env::var("OPENAI_API_KEY").expect("OPENAI_API_KEY not set");
|
||||
|
||||
let embedding_provider = Arc::new(OpenAiEmbeddingProvider::new(
|
||||
http.clone(),
|
||||
OpenAiEmbeddingModel::TextEmbedding3Small,
|
||||
open_ai::OPEN_AI_API_URL.to_string(),
|
||||
api_key,
|
||||
));
|
||||
|
||||
cx.spawn(|mut cx| async move {
|
||||
let semantic_index = SemanticDb::new(
|
||||
PathBuf::from("/tmp/semantic-index-db.mdb"),
|
||||
embedding_provider,
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
let mut semantic_index = semantic_index.await.unwrap();
|
||||
|
||||
let project_path = Path::new(&args[1]);
|
||||
|
||||
let project = Project::example([project_path], &mut cx).await;
|
||||
|
||||
cx.update(|cx| {
|
||||
let language_registry = project.read(cx).languages().clone();
|
||||
let node_runtime = project.read(cx).node_runtime().unwrap().clone();
|
||||
languages::init(language_registry, node_runtime, cx);
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
let project_index = cx
|
||||
.update(|cx| semantic_index.project_index(project.clone(), cx))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
|
||||
let (tx, rx) = oneshot::channel();
|
||||
let mut tx = Some(tx);
|
||||
let subscription = cx.update(|cx| {
|
||||
cx.subscribe(&project_index, move |_, event, _| {
|
||||
if let Some(tx) = tx.take() {
|
||||
_ = tx.send(*event);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
let index_start = std::time::Instant::now();
|
||||
rx.await.expect("no event emitted");
|
||||
drop(subscription);
|
||||
println!("Index time: {:?}", index_start.elapsed());
|
||||
|
||||
let results = cx
|
||||
.update(|cx| {
|
||||
let project_index = project_index.read(cx);
|
||||
let query = "converting an anchor to a point";
|
||||
project_index.search(vec![query.into()], 4, cx)
|
||||
})
|
||||
.unwrap()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
for search_result in results {
|
||||
let path = search_result.path.clone();
|
||||
|
||||
let content = cx
|
||||
.update(|cx| {
|
||||
let worktree = search_result.worktree.read(cx);
|
||||
let entry_abs_path = worktree.abs_path().join(search_result.path.clone());
|
||||
let fs = project.read(cx).fs().clone();
|
||||
cx.spawn(|_| async move { fs.load(&entry_abs_path).await.unwrap() })
|
||||
})
|
||||
.unwrap()
|
||||
.await;
|
||||
|
||||
let range = search_result.range.clone();
|
||||
let content = content[search_result.range].to_owned();
|
||||
|
||||
println!(
|
||||
"✄✄✄✄✄✄✄✄✄✄✄✄✄✄ {:?} @ {} ✄✄✄✄✄✄✄✄✄✄✄✄✄✄",
|
||||
path, search_result.score
|
||||
);
|
||||
println!("{:?}:{:?}:{:?}", path, range.start, range.end);
|
||||
println!("{}", content);
|
||||
}
|
||||
|
||||
cx.background_executor()
|
||||
.timer(std::time::Duration::from_secs(100000))
|
||||
.await;
|
||||
|
||||
cx.update(|cx| cx.quit()).unwrap();
|
||||
})
|
||||
.detach();
|
||||
});
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
[package]
|
||||
name = "settings_ui"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/settings_ui.rs"
|
||||
|
||||
[dependencies]
|
||||
command_palette_hooks.workspace = true
|
||||
editor.workspace = true
|
||||
feature_flags.workspace = true
|
||||
gpui.workspace = true
|
||||
settings.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
workspace.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,22 +0,0 @@
|
||||
[package]
|
||||
name = "snippets_ui"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/snippets_ui.rs"
|
||||
|
||||
[dependencies]
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
paths.workspace = true
|
||||
picker.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -15,7 +15,6 @@ path = "src/storybook.rs"
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
clap = { workspace = true, features = ["derive", "string"] }
|
||||
collab_ui = { workspace = true, features = ["stories"] }
|
||||
ctrlc = "3.4"
|
||||
dialoguer = { version = "0.11.0", features = ["fuzzy-select"] }
|
||||
editor.workspace = true
|
||||
@@ -33,9 +32,9 @@ simplelog.workspace = true
|
||||
story.workspace = true
|
||||
strum = { workspace = true, features = ["derive"] }
|
||||
theme.workspace = true
|
||||
title_bar = { workspace = true, features = ["stories"] }
|
||||
ui = { workspace = true, features = ["stories"] }
|
||||
reqwest_client.workspace = true
|
||||
zed_common = { workspace = true, features = ["stories"] }
|
||||
|
||||
[dev-dependencies]
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
|
||||
@@ -46,13 +46,13 @@ impl ComponentStory {
|
||||
pub fn story(&self, cx: &mut WindowContext) -> AnyView {
|
||||
match self {
|
||||
Self::ApplicationMenu => cx
|
||||
.new_view(|cx| title_bar::ApplicationMenuStory::new(cx))
|
||||
.new_view(|cx| zed_common::title_bar::ApplicationMenuStory::new(cx))
|
||||
.into(),
|
||||
Self::AutoHeightEditor => AutoHeightEditorStory::new(cx).into(),
|
||||
Self::Avatar => cx.new_view(|_| ui::AvatarStory).into(),
|
||||
Self::Button => cx.new_view(|_| ui::ButtonStory).into(),
|
||||
Self::CollabNotification => cx
|
||||
.new_view(|_| collab_ui::notifications::CollabNotificationStory)
|
||||
.new_view(|_| zed_common::collab_ui::notifications::CollabNotificationStory)
|
||||
.into(),
|
||||
Self::ContextMenu => cx.new_view(|_| ui::ContextMenuStory).into(),
|
||||
Self::Cursor => cx.new_view(|_| crate::stories::CursorStory).into(),
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
[package]
|
||||
name = "tab_switcher"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/tab_switcher.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
collections.workspace = true
|
||||
editor.workspace = true
|
||||
gpui.workspace = true
|
||||
menu.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
serde.workspace = true
|
||||
settings.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
anyhow.workspace = true
|
||||
ctor.workspace = true
|
||||
env_logger.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
serde_json.workspace = true
|
||||
theme = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,47 +0,0 @@
|
||||
[package]
|
||||
name = "terminal_view"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/terminal_view.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
db.workspace = true
|
||||
collections.workspace = true
|
||||
dirs.workspace = true
|
||||
editor.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
itertools.workspace = true
|
||||
language.workspace = true
|
||||
project.workspace = true
|
||||
task.workspace = true
|
||||
tasks_ui.workspace = true
|
||||
search.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
shellexpand.workspace = true
|
||||
smol.workspace = true
|
||||
terminal.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
rand.workspace = true
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,23 +0,0 @@
|
||||
Design notes:
|
||||
|
||||
This crate is split into two conceptual halves:
|
||||
- The terminal.rs file and the src/mappings/ folder, these contain the code for interacting with Alacritty and maintaining the pty event loop. Some behavior in this file is constrained by terminal protocols and standards. The Zed init function is also placed here.
|
||||
- Everything else. These other files integrate the `Terminal` struct created in terminal.rs into the rest of GPUI. The main entry point for GPUI is the terminal_view.rs file and the modal.rs file.
|
||||
|
||||
ttys are created externally, and so can fail in unexpected ways. However, GPUI currently does not have an API for models than can fail to instantiate. `TerminalBuilder` solves this by using Rust's type system to split tty instantiation into a 2 step process: first attempt to create the file handles with `TerminalBuilder::new()`, check the result, then call `TerminalBuilder::subscribe(cx)` from within a model context.
|
||||
|
||||
The TerminalView struct abstracts over failed and successful terminals, passing focus through to the associated view and allowing clients to build a terminal without worrying about errors.
|
||||
|
||||
#Input
|
||||
|
||||
There are currently many distinct paths for getting keystrokes to the terminal:
|
||||
|
||||
1. Terminal specific characters and bindings. Things like ctrl-a mapping to ASCII control character 1, ANSI escape codes associated with the function keys, etc. These are caught with a raw key-down handler in the element and are processed immediately. This is done with the `try_keystroke()` method on Terminal
|
||||
|
||||
2. GPU Action handlers. GPUI clobbers a few vital keys by adding bindings to them in the global context. These keys are synthesized and then dispatched through the same `try_keystroke()` API as the above mappings
|
||||
|
||||
3. IME text. When the special character mappings fail, we pass the keystroke back to GPUI to hand it to the IME system. This comes back to us in the `View::replace_text_in_range()` method, and we then send that to the terminal directly, bypassing `try_keystroke()`.
|
||||
|
||||
4. Pasted text has a separate pathway.
|
||||
|
||||
Generally, there's a distinction between 'keystrokes that need to be mapped' and 'strings which need to be written'. I've attempted to unify these under the '.try_keystroke()' API and the `.input()` API (which try_keystroke uses) so we have consistent input handling across the terminal
|
||||
@@ -1,96 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Tom Hale, 2016. MIT Licence.
|
||||
# Print out 256 colours, with each number printed in its corresponding colour
|
||||
# See http://askubuntu.com/questions/821157/print-a-256-color-test-pattern-in-the-terminal/821163#821163
|
||||
|
||||
set -eu # Fail on errors or undeclared variables
|
||||
|
||||
printable_colours=256
|
||||
|
||||
# Return a colour that contrasts with the given colour
|
||||
# Bash only does integer division, so keep it integral
|
||||
function contrast_colour {
|
||||
local r g b luminance
|
||||
colour="$1"
|
||||
|
||||
if (( colour < 16 )); then # Initial 16 ANSI colours
|
||||
(( colour == 0 )) && printf "15" || printf "0"
|
||||
return
|
||||
fi
|
||||
|
||||
# Greyscale # rgb_R = rgb_G = rgb_B = (number - 232) * 10 + 8
|
||||
if (( colour > 231 )); then # Greyscale ramp
|
||||
(( colour < 244 )) && printf "15" || printf "0"
|
||||
return
|
||||
fi
|
||||
|
||||
# All other colours:
|
||||
# 6x6x6 colour cube = 16 + 36*R + 6*G + B # Where RGB are [0..5]
|
||||
# See http://stackoverflow.com/a/27165165/5353461
|
||||
|
||||
# r=$(( (colour-16) / 36 ))
|
||||
g=$(( ((colour-16) % 36) / 6 ))
|
||||
# b=$(( (colour-16) % 6 ))
|
||||
|
||||
# If luminance is bright, print number in black, white otherwise.
|
||||
# Green contributes 587/1000 to human perceived luminance - ITU R-REC-BT.601
|
||||
(( g > 2)) && printf "0" || printf "15"
|
||||
return
|
||||
|
||||
# Uncomment the below for more precise luminance calculations
|
||||
|
||||
# # Calculate perceived brightness
|
||||
# # See https://www.w3.org/TR/AERT#color-contrast
|
||||
# # and http://www.itu.int/rec/R-REC-BT.601
|
||||
# # Luminance is in range 0..5000 as each value is 0..5
|
||||
# luminance=$(( (r * 299) + (g * 587) + (b * 114) ))
|
||||
# (( $luminance > 2500 )) && printf "0" || printf "15"
|
||||
}
|
||||
|
||||
# Print a coloured block with the number of that colour
|
||||
function print_colour {
|
||||
local colour="$1" contrast
|
||||
contrast=$(contrast_colour "$1")
|
||||
printf "\e[48;5;%sm" "$colour" # Start block of colour
|
||||
printf "\e[38;5;%sm%3d" "$contrast" "$colour" # In contrast, print number
|
||||
printf "\e[0m " # Reset colour
|
||||
}
|
||||
|
||||
# Starting at $1, print a run of $2 colours
|
||||
function print_run {
|
||||
local i
|
||||
for (( i = "$1"; i < "$1" + "$2" && i < printable_colours; i++ )) do
|
||||
print_colour "$i"
|
||||
done
|
||||
printf " "
|
||||
}
|
||||
|
||||
# Print blocks of colours
|
||||
function print_blocks {
|
||||
local start="$1" i
|
||||
local end="$2" # inclusive
|
||||
local block_cols="$3"
|
||||
local block_rows="$4"
|
||||
local blocks_per_line="$5"
|
||||
local block_length=$((block_cols * block_rows))
|
||||
|
||||
# Print sets of blocks
|
||||
for (( i = start; i <= end; i += (blocks_per_line-1) * block_length )) do
|
||||
printf "\n" # Space before each set of blocks
|
||||
# For each block row
|
||||
for (( row = 0; row < block_rows; row++ )) do
|
||||
# Print block columns for all blocks on the line
|
||||
for (( block = 0; block < blocks_per_line; block++ )) do
|
||||
print_run $(( i + (block * block_length) )) "$block_cols"
|
||||
done
|
||||
(( i += block_cols )) # Prepare to print the next row
|
||||
printf "\n"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
print_run 0 16 # The first 16 colours are spread over the whole spectrum
|
||||
printf "\n"
|
||||
print_blocks 16 231 6 6 3 # 6x6x6 colour cube between 16 and 231 inclusive
|
||||
print_blocks 232 255 12 2 1 # Not 50, but 24 Shades of Grey
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copied from: https://unix.stackexchange.com/a/696756
|
||||
# Based on: https://gist.github.com/XVilka/8346728 and https://unix.stackexchange.com/a/404415/395213
|
||||
|
||||
awk -v term_cols="${width:-$(tput cols || echo 80)}" -v term_lines="${height:-1}" 'BEGIN{
|
||||
s="/\\";
|
||||
total_cols=term_cols*term_lines;
|
||||
for (colnum = 0; colnum<total_cols; colnum++) {
|
||||
r = 255-(colnum*255/total_cols);
|
||||
g = (colnum*510/total_cols);
|
||||
b = (colnum*255/total_cols);
|
||||
if (g>255) g = 510-g;
|
||||
printf "\033[48;2;%d;%d;%dm", r,g,b;
|
||||
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
|
||||
printf "%s\033[0m", substr(s,colnum%2+1,1);
|
||||
if (colnum%term_cols==term_cols) printf "\n";
|
||||
}
|
||||
printf "\n";
|
||||
}'
|
||||
@@ -1,29 +0,0 @@
|
||||
[package]
|
||||
name = "theme_selector"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/theme_selector.rs"
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
client.workspace = true
|
||||
fs.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
log.workspace = true
|
||||
picker.workspace = true
|
||||
serde.workspace = true
|
||||
settings.workspace = true
|
||||
theme.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,72 +0,0 @@
|
||||
[package]
|
||||
name = "title_bar"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/title_bar.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
default = []
|
||||
stories = ["dep:story"]
|
||||
test-support = [
|
||||
"call/test-support",
|
||||
"client/test-support",
|
||||
"collections/test-support",
|
||||
"editor/test-support",
|
||||
"gpui/test-support",
|
||||
"http_client/test-support",
|
||||
"project/test-support",
|
||||
"util/test-support",
|
||||
"workspace/test-support",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
auto_update.workspace = true
|
||||
call.workspace = true
|
||||
client.workspace = true
|
||||
command_palette.workspace = true
|
||||
extensions_ui.workspace = true
|
||||
feedback.workspace = true
|
||||
feature_flags.workspace = true
|
||||
gpui.workspace = true
|
||||
notifications.workspace = true
|
||||
project.workspace = true
|
||||
recent_projects.workspace = true
|
||||
remote.workspace = true
|
||||
rpc.workspace = true
|
||||
serde.workspace = true
|
||||
smallvec.workspace = true
|
||||
story = { workspace = true, optional = true }
|
||||
theme.workspace = true
|
||||
theme_selector.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
vcs_menu.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
call = { workspace = true, features = ["test-support"] }
|
||||
client = { workspace = true, features = ["test-support"] }
|
||||
collections = { workspace = true, features = ["test-support"] }
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
http_client = { workspace = true, features = ["test-support"] }
|
||||
notifications = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions.workspace = true
|
||||
project = { workspace = true, features = ["test-support"] }
|
||||
rpc = { workspace = true, features = ["test-support"] }
|
||||
settings = { workspace = true, features = ["test-support"] }
|
||||
tree-sitter-md.workspace = true
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,24 +0,0 @@
|
||||
[package]
|
||||
name = "toolchain_selector"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[dependencies]
|
||||
editor.workspace = true
|
||||
fuzzy.workspace = true
|
||||
gpui.workspace = true
|
||||
language.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/toolchain_selector.rs"
|
||||
doctest = false
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,20 +0,0 @@
|
||||
[package]
|
||||
name = "vcs_menu"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
fuzzy.workspace = true
|
||||
git.workspace = true
|
||||
gpui.workspace = true
|
||||
picker.workspace = true
|
||||
project.workspace = true
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,57 +0,0 @@
|
||||
[package]
|
||||
name = "vim"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "GPL-3.0-or-later"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[lib]
|
||||
path = "src/vim.rs"
|
||||
doctest = false
|
||||
|
||||
[features]
|
||||
neovim = ["nvim-rs", "async-compat", "async-trait", "tokio"]
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
async-compat = { workspace = true, "optional" = true }
|
||||
async-trait = { workspace = true, "optional" = true }
|
||||
collections.workspace = true
|
||||
command_palette.workspace = true
|
||||
command_palette_hooks.workspace = true
|
||||
editor.workspace = true
|
||||
gpui.workspace = true
|
||||
itertools.workspace = true
|
||||
language.workspace = true
|
||||
log.workspace = true
|
||||
multi_buffer.workspace = true
|
||||
nvim-rs = { git = "https://github.com/KillTheMule/nvim-rs", branch = "master", features = ["use_tokio"], optional = true }
|
||||
regex.workspace = true
|
||||
schemars.workspace = true
|
||||
search.workspace = true
|
||||
serde.workspace = true
|
||||
serde_derive.workspace = true
|
||||
serde_json.workspace = true
|
||||
settings.workspace = true
|
||||
tokio = { version = "1.15", features = ["full"], optional = true }
|
||||
ui.workspace = true
|
||||
util.workspace = true
|
||||
workspace.workspace = true
|
||||
zed_actions.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
command_palette.workspace = true
|
||||
editor = { workspace = true, features = ["test-support"] }
|
||||
futures.workspace = true
|
||||
gpui = { workspace = true, features = ["test-support"] }
|
||||
indoc.workspace = true
|
||||
language = { workspace = true, features = ["test-support"] }
|
||||
lsp = { workspace = true, features = ["test-support"] }
|
||||
parking_lot.workspace = true
|
||||
release_channel.workspace = true
|
||||
settings.workspace = true
|
||||
util = { workspace = true, features = ["test-support"] }
|
||||
workspace = { workspace = true, features = ["test-support"] }
|
||||
@@ -1 +0,0 @@
|
||||
../../LICENSE-GPL
|
||||
@@ -1,36 +0,0 @@
|
||||
This contains the code for Zed's Vim emulation mode.
|
||||
|
||||
Vim mode in Zed is supposed to primarily "do what you expect": it mostly tries to copy vim exactly, but will use Zed-specific functionality when available to make things smoother. This means Zed will never be 100% vim compatible, but should be 100% vim familiar!
|
||||
|
||||
The backlog is maintained in the `#vim` channel notes.
|
||||
|
||||
## Testing against Neovim
|
||||
|
||||
If you are making a change to make Zed's behavior more closely match vim/nvim, you can create a test using the `NeovimBackedTestContext`.
|
||||
|
||||
For example, the following test checks that Zed and Neovim have the same behavior when running `*` in visual mode:
|
||||
|
||||
```rust
|
||||
#[gpui::test]
|
||||
async fn test_visual_star_hash(cx: &mut gpui::TestAppContext) {
|
||||
let mut cx = NeovimBackedTestContext::new(cx).await;
|
||||
|
||||
cx.set_shared_state("ˇa.c. abcd a.c. abcd").await;
|
||||
cx.simulate_shared_keystrokes(["v", "3", "l", "*"]).await;
|
||||
cx.assert_shared_state("a.c. abcd ˇa.c. abcd").await;
|
||||
}
|
||||
```
|
||||
|
||||
To keep CI runs fast, by default the neovim tests use a cached JSON file that records what neovim did (see crates/vim/test_data),
|
||||
but while developing this test you'll need to run it with the neovim flag enabled:
|
||||
|
||||
```sh
|
||||
cargo test -p vim --features neovim test_visual_star_hash
|
||||
```
|
||||
|
||||
This will run your keystrokes against a headless neovim and cache the results in the test_data directory.
|
||||
|
||||
|
||||
## Testing zed-only behavior
|
||||
|
||||
Zed does more than vim/neovim in their default modes. The `VimTestContext` can be used instead. This lets you test integration with the language server and other parts of zed's UI that don't have a NeoVim equivalent.
|
||||
@@ -1,3 +0,0 @@
|
||||
{"Get":{"state":"ˇ","mode":"Normal"}}
|
||||
{"Put":{"state":"This is a tesˇt"}}
|
||||
{"Get":{"state":"This is a tesˇt","mode":"Normal"}}
|
||||
@@ -1,6 +0,0 @@
|
||||
{"Put":{"state":"The qˇuick"}}
|
||||
{"Key":"a"}
|
||||
{"Get":{"state":"The quˇick","mode":"Insert"}}
|
||||
{"Put":{"state":"The quicˇk"}}
|
||||
{"Key":"a"}
|
||||
{"Get":{"state":"The quickˇ","mode":"Insert"}}
|
||||
@@ -1,54 +0,0 @@
|
||||
{"Put":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quickˇ-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-ˇbrown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quickˇ-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\nˇ\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quick-ˇbrown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\nˇ\nfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quick-brown\nˇ\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nˇfox_jumps over\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quick-brown\n\nˇ\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nfox_jumps ˇover\nthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quick-brown\n\n\nˇfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nfox_jumps over\nˇthe"}}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"The quick-brown\n\n\nfox_jumps ˇover\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"ˇThe quick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quickˇ-brown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-ˇbrown\n\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\nˇ\n\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The ˇquick-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\nˇ\nfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The quick-brown\nˇ\n\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nˇfox_jumps over\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The quick-brown\n\nˇ\nfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nfox_jumps ˇover\nthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The quick-brown\n\n\nˇfox_jumps over\nthe","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick-brown\n\n\nfox_jumps over\nˇthe"}}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"The quick-brown\n\n\nfox_jumps ˇover\nthe","mode":"Normal"}}
|
||||
@@ -1,9 +0,0 @@
|
||||
{"Put":{"state":"ˇThe quick\nbrown"}}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"ˇThe quick\nbrown","mode":"Normal"}}
|
||||
{"Put":{"state":"The qˇuick\nbrown"}}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"The ˇquick\nbrown","mode":"Normal"}}
|
||||
{"Put":{"state":"The quick\nˇbrown"}}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"The quicˇk\nbrown","mode":"Normal"}}
|
||||
@@ -1,8 +0,0 @@
|
||||
{"Put":{"state":"ˇa b a b a b a"}}
|
||||
{"Key":"*"}
|
||||
{"Key":"n"}
|
||||
{"Get":{"state":"a b a b ˇa b a","mode":"Normal"}}
|
||||
{"Key":"#"}
|
||||
{"Get":{"state":"a b ˇa b a b a","mode":"Normal"}}
|
||||
{"Key":"n"}
|
||||
{"Get":{"state":"ˇa b a b a b a","mode":"Normal"}}
|
||||
@@ -1,11 +0,0 @@
|
||||
{"Put":{"state":"ˇhello world"}}
|
||||
{"Key":"d"}
|
||||
{"Key":"i"}
|
||||
{"Key":"w"}
|
||||
{"Key":"\""}
|
||||
{"Key":"_"}
|
||||
{"Key":"d"}
|
||||
{"Key":"a"}
|
||||
{"Key":"w"}
|
||||
{"Key":"p"}
|
||||
{"Get":{"state":"hellˇo","mode":"Normal"}}
|
||||
@@ -1,36 +0,0 @@
|
||||
{"Put":{"state":"Line one\nLine two\nLine ˇthree\nLine four\nLine five\n"}}
|
||||
{"Key":"v"}
|
||||
{"Key":"j"}
|
||||
{"Key":"escape"}
|
||||
{"Key":"k"}
|
||||
{"Key":"k"}
|
||||
{"Key":"'"}
|
||||
{"Key":"<"}
|
||||
{"Get":{"state":"Line one\nLine two\nˇLine three\nLine four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"`"}
|
||||
{"Key":"<"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine ˇthree\nLine four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"'"}
|
||||
{"Key":">"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine three\nˇLine four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"`"}
|
||||
{"Key":">"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine three\nLine ˇfour\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"g"}
|
||||
{"Key":"^"}
|
||||
{"Key":"j"}
|
||||
{"Key":"j"}
|
||||
{"Key":"l"}
|
||||
{"Key":"l"}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Key":"k"}
|
||||
{"Key":"e"}
|
||||
{"Key":"escape"}
|
||||
{"Key":"'"}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"Line one\nLine two\nˇLike three\nLine four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"`"}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"Line one\nLine two\nLiˇke three\nLine four\nLine five\n","mode":"Normal"}}
|
||||
@@ -1,570 +0,0 @@
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"1"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-f"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇaaab b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaaˇb b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab ˇb bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b ˇbb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bˇb aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaabˇ b bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bbˇ aaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aˇaabaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaaˇbaaa\n baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab bˇ bb aaabaaa\n baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\nˇ baaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n ˇbaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaˇa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa ˇbbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bˇbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbˇb\n \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n bˇaaa bbb\n \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\nˇ \nb\n","mode":"Normal"}}
|
||||
{"Put":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n"}}
|
||||
{"Key":"3"}
|
||||
{"Key":"shift-t"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"aaab b bb aaabaaa\n baaa bbb\n \nˇb\n","mode":"Normal"}}
|
||||
@@ -1,35 +0,0 @@
|
||||
{"Put":{"state":"Line one\nLine two\nLine three\nˇLine four\nLine five\n"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"w"}
|
||||
{"Key":"shift-s"}
|
||||
{"Key":"t"}
|
||||
{"Key":"r"}
|
||||
{"Key":"a"}
|
||||
{"Key":"i"}
|
||||
{"Key":"g"}
|
||||
{"Key":"h"}
|
||||
{"Key":"t"}
|
||||
{"Key":"space"}
|
||||
{"Key":"t"}
|
||||
{"Key":"h"}
|
||||
{"Key":"i"}
|
||||
{"Key":"n"}
|
||||
{"Key":"g"}
|
||||
{"Key":"escape"}
|
||||
{"Key":"j"}
|
||||
{"Key":"j"}
|
||||
{"Key":"'"}
|
||||
{"Key":"^"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine three\nˇStraight thing four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"`"}
|
||||
{"Key":"^"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine three\nStraight thingˇ four\nLine five\n","mode":"Normal"}}
|
||||
{"Key":"k"}
|
||||
{"Key":"a"}
|
||||
{"Key":"!"}
|
||||
{"Key":"escape"}
|
||||
{"Key":"k"}
|
||||
{"Key":"g"}
|
||||
{"Key":"i"}
|
||||
{"Key":"?"}
|
||||
{"Get":{"state":"Line one\nLine two\nLine three!?ˇ\nStraight thing four\nLine five\n","mode":"Insert"}}
|
||||
@@ -1,24 +0,0 @@
|
||||
{"Put":{"state":"ˇ"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"ˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The ˇquick"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"ˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quˇick\nbrown fox\njumps over"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"ˇ\nbrown fox\njumps over","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown ˇfox\njumps over"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"The quick\nˇ\njumps over","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\njumps ˇover"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"The quick\nbrown fox\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nˇ\nbrown fox"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"The quick\nˇ\nbrown fox","mode":"Insert"}}
|
||||
@@ -1,28 +0,0 @@
|
||||
{"Put":{"state":"aaˇ aa aa aa aa"}}
|
||||
{"Key":"/"}
|
||||
{"Key":"b"}
|
||||
{"Key":"b"}
|
||||
{"Key":"enter"}
|
||||
{"Get":{"state":"aaˇ aa aa aa aa","mode":"Normal"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"n"}
|
||||
{"Key":"x"}
|
||||
{"Key":"escape"}
|
||||
{"Get":{"state":"aaˇaa aa aa aa","mode":"Normal"}}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"aaˇa aa aa aa","mode":"Normal"}}
|
||||
{"Put":{"state":"aaˇ bb aa aa aa"}}
|
||||
{"Key":"/"}
|
||||
{"Key":"b"}
|
||||
{"Key":"b"}
|
||||
{"Key":"enter"}
|
||||
{"Get":{"state":"aa ˇbb aa aa aa","mode":"Normal"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"n"}
|
||||
{"Key":"x"}
|
||||
{"Key":"escape"}
|
||||
{"Get":{"state":"aa ˇx aa aa aa","mode":"Normal"}}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"aa ˇx aa aa aa","mode":"Normal"}}
|
||||
@@ -1,14 +0,0 @@
|
||||
{"Put":{"state":"aaˇ aa aa aa aa"}}
|
||||
{"Key":"/"}
|
||||
{"Key":"a"}
|
||||
{"Key":"a"}
|
||||
{"Key":"enter"}
|
||||
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"n"}
|
||||
{"Key":"x"}
|
||||
{"Key":"escape"}
|
||||
{"Get":{"state":"aa ˇx aa aa aa","mode":"Normal"}}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"aa x ˇx aa aa","mode":"Normal"}}
|
||||
@@ -1,8 +0,0 @@
|
||||
{"Put":{"state":"The qˇuick\nbrown fox"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"0"}
|
||||
{"Get":{"state":"ˇuick\nbrown fox","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nˇ\nbrown fox"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"0"}
|
||||
{"Get":{"state":"The quick\nˇ\nbrown fox","mode":"Insert"}}
|
||||
@@ -1,24 +0,0 @@
|
||||
{"Put":{"state":"Teˇst Test"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇst Test","mode":"Insert"}}
|
||||
{"Put":{"state":"Test ˇtest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"ˇtest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test1 test2 ˇtest3"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"Test1 ˇtest3","mode":"Insert"}}
|
||||
{"Put":{"state":"Test test\nˇtest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"Test ˇ\ntest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test test\nˇ\ntest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"b"}
|
||||
{"Get":{"state":"Test ˇ\n\ntest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test test-test ˇtest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-b"}
|
||||
{"Get":{"state":"Test ˇtest","mode":"Insert"}}
|
||||
@@ -1,16 +0,0 @@
|
||||
{"Put":{"state":"Teˇst"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"Tˇst","mode":"Insert"}}
|
||||
{"Put":{"state":"Tˇest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"ˇest","mode":"Insert"}}
|
||||
{"Put":{"state":"ˇTest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"ˇTest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test\nˇtest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"backspace"}
|
||||
{"Get":{"state":"Testˇtest","mode":"Insert"}}
|
||||
@@ -1,23 +0,0 @@
|
||||
{"Put":{"state":"ˇabC\n"}}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"AˇbC\n","mode":"Normal"}}
|
||||
{"Key":"2"}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"ABˇc\n","mode":"Normal"}}
|
||||
{"Put":{"state":"a😀C«dÉ1*fˇ»\n"}}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"a😀CˇDé1*F\n","mode":"Normal"}}
|
||||
{"Key":"~"}
|
||||
{"Put":{"state":"aˇC😀é1*F\n"}}
|
||||
{"Key":"4"}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"ac😀É1ˇ*F\n","mode":"Normal"}}
|
||||
{"Put":{"state":"abˇC\n"}}
|
||||
{"Key":"shift-v"}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"ˇABc\n","mode":"Normal"}}
|
||||
{"Put":{"state":"ˇaa\nbb\ncc"}}
|
||||
{"Key":"ctrl-v"}
|
||||
{"Key":"j"}
|
||||
{"Key":"~"}
|
||||
{"Get":{"state":"ˇAa\nBb\ncc","mode":"Normal"}}
|
||||
@@ -1,27 +0,0 @@
|
||||
{"Put":{"state":"ˇabc def"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"shift-u"}
|
||||
{"Key":"w"}
|
||||
{"Get":{"state":"ˇABC def","mode":"Normal"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"u"}
|
||||
{"Key":"w"}
|
||||
{"Get":{"state":"ˇabc def","mode":"Normal"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"~"}
|
||||
{"Key":"w"}
|
||||
{"Get":{"state":"ˇABC def","mode":"Normal"}}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"ˇabc def","mode":"Normal"}}
|
||||
{"Put":{"state":"abˇc def"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"~"}
|
||||
{"Key":"i"}
|
||||
{"Key":"w"}
|
||||
{"Get":{"state":"ˇABC def","mode":"Normal"}}
|
||||
{"Key":"."}
|
||||
{"Get":{"state":"ˇabc def","mode":"Normal"}}
|
||||
{"Key":"g"}
|
||||
{"Key":"shift-u"}
|
||||
{"Key":"$"}
|
||||
{"Get":{"state":"ˇABC DEF","mode":"Normal"}}
|
||||
@@ -1,12 +0,0 @@
|
||||
{"Put":{"state":"The quick\n brownˇ fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"The quick\n ˇ\njumps over\nthe lazy","mode":"Insert"}}
|
||||
{"Put":{"state":"ˇThe quick\nbrown fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"ˇ\nbrown fox\njumps over\nthe lazy","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\n broˇwn fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"c"}
|
||||
{"Get":{"state":"The quick\n ˇ\njumps over\nthe lazy","mode":"Insert"}}
|
||||
@@ -1,24 +0,0 @@
|
||||
{"Put":{"state":"Teˇst Test"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Get":{"state":"Teˇ Test","mode":"Insert"}}
|
||||
{"Put":{"state":"Tˇest test"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Get":{"state":"Tˇ test","mode":"Insert"}}
|
||||
{"Put":{"state":"Test teˇst\ntest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Get":{"state":"Test teˇ\ntest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test tesˇt\ntest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Get":{"state":"Test tesˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"Test test\nˇ\ntest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"e"}
|
||||
{"Get":{"state":"Test test\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"Test teˇst-test test"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-e"}
|
||||
{"Get":{"state":"Test teˇ test","mode":"Insert"}}
|
||||
@@ -1,16 +0,0 @@
|
||||
{"Put":{"state":"The quick\nbrownˇ fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-g"}
|
||||
{"Get":{"state":"The quick\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrownˇ fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-g"}
|
||||
{"Get":{"state":"The quick\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\njumps over\nthe lˇazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-g"}
|
||||
{"Get":{"state":"The quick\nbrown fox\njumps over\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\njumps over\nˇ"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"shift-g"}
|
||||
{"Get":{"state":"The quick\nbrown fox\njumps over\nˇ","mode":"Insert"}}
|
||||
@@ -1,8 +0,0 @@
|
||||
{"Put":{"state":"The qˇuick\nbrown fox"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"$"}
|
||||
{"Get":{"state":"The qˇ\nbrown fox","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nˇ\nbrown fox"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"$"}
|
||||
{"Get":{"state":"The quick\nˇ\nbrown fox","mode":"Insert"}}
|
||||
@@ -1,20 +0,0 @@
|
||||
{"Put":{"state":"The quick\nbrownˇ fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"g"}
|
||||
{"Get":{"state":"ˇ\njumps over\nthe lazy","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\njumps over\nthe lˇazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"g"}
|
||||
{"Get":{"state":"ˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The qˇuick\nbrown fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"g"}
|
||||
{"Get":{"state":"ˇ\nbrown fox\njumps over\nthe lazy","mode":"Insert"}}
|
||||
{"Put":{"state":"ˇ\nbrown fox\njumps over\nthe lazy"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"g"}
|
||||
{"Key":"g"}
|
||||
{"Get":{"state":"ˇ\nbrown fox\njumps over\nthe lazy","mode":"Insert"}}
|
||||
@@ -1,16 +0,0 @@
|
||||
{"Put":{"state":"Teˇst"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"h"}
|
||||
{"Get":{"state":"Tˇst","mode":"Insert"}}
|
||||
{"Put":{"state":"Tˇest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"h"}
|
||||
{"Get":{"state":"ˇest","mode":"Insert"}}
|
||||
{"Put":{"state":"ˇTest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"h"}
|
||||
{"Get":{"state":"ˇTest","mode":"Insert"}}
|
||||
{"Put":{"state":"Test\nˇtest"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"h"}
|
||||
{"Get":{"state":"Test\nˇtest","mode":"Insert"}}
|
||||
@@ -1,16 +0,0 @@
|
||||
{"Put":{"state":"The quick\nbrown ˇfox\njumps over"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"j"}
|
||||
{"Get":{"state":"The quick\nˇ","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\njumps ˇover"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"j"}
|
||||
{"Get":{"state":"The quick\nbrown fox\njumps ˇover","mode":"Normal"}}
|
||||
{"Put":{"state":"The qˇuick\nbrown fox\njumps over"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"j"}
|
||||
{"Get":{"state":"ˇ\njumps over","mode":"Insert"}}
|
||||
{"Put":{"state":"The quick\nbrown fox\nˇ"}}
|
||||
{"Key":"c"}
|
||||
{"Key":"j"}
|
||||
{"Get":{"state":"The quick\nbrown fox\nˇ","mode":"Normal"}}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user