@@ -59,41 +59,6 @@ dependencies = [
"memchr",
]
-[[package]]
-name = "alacritty"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f293c6549baebc7f1ad0d39006bf12b7b0225cfb38687d6bd431e840b1b9f19"
-dependencies = [
- "alacritty_config_derive",
- "alacritty_terminal",
- "bitflags",
- "cocoa",
- "copypasta",
- "crossfont",
- "dirs 3.0.2",
- "embed-resource",
- "fnv",
- "gl_generator",
- "glutin",
- "libc",
- "log",
- "notify",
- "objc",
- "parking_lot 0.11.2",
- "png",
- "raw-window-handle",
- "serde",
- "serde_json",
- "serde_yaml",
- "structopt",
- "unicode-width",
- "wayland-client",
- "winapi 0.3.9",
- "x11-dl",
- "xdg",
-]
-
[[package]]
name = "alacritty_config_derive"
version = "0.1.0"
@@ -121,7 +86,7 @@ dependencies = [
"mio-anonymous-pipes",
"mio-extras",
"miow 0.3.7",
- "nix 0.22.3",
+ "nix",
"parking_lot 0.11.2",
"regex-automata",
"serde",
@@ -139,12 +104,6 @@ version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049"
-[[package]]
-name = "android_glue"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407"
-
[[package]]
name = "ansi_term"
version = "0.12.1"
@@ -721,16 +680,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-[[package]]
-name = "calloop"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
-dependencies = [
- "log",
- "nix 0.22.3",
-]
-
[[package]]
name = "cap-fs-ext"
version = "0.24.4"
@@ -833,15 +782,6 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-[[package]]
-name = "cgl"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "chat_panel"
version = "0.1.0"
@@ -957,7 +897,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"clap 3.2.8",
- "core-foundation 0.9.3",
+ "core-foundation",
"core-services",
"dirs 3.0.2",
"ipc-channel",
@@ -992,16 +932,6 @@ dependencies = [
"util",
]
-[[package]]
-name = "clipboard-win"
-version = "3.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342"
-dependencies = [
- "lazy-bytes-cast",
- "winapi 0.3.9",
-]
-
[[package]]
name = "clock"
version = "0.1.0"
@@ -1026,9 +956,9 @@ dependencies = [
"bitflags",
"block",
"cocoa-foundation",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types 0.3.2",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
"libc",
"objc",
]
@@ -1040,9 +970,9 @@ source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2f
dependencies = [
"bitflags",
"block",
- "core-foundation 0.9.3",
+ "core-foundation",
"core-graphics-types",
- "foreign-types 0.3.2",
+ "foreign-types",
"libc",
"objc",
]
@@ -1175,71 +1105,29 @@ dependencies = [
"theme",
]
-[[package]]
-name = "copypasta"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4423d79fed83ebd9ab81ec21fa97144300a961782158287dc9bf7eddac37ff0b"
-dependencies = [
- "clipboard-win",
- "objc",
- "objc-foundation",
- "objc_id",
- "smithay-clipboard",
- "x11-clipboard",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-dependencies = [
- "core-foundation-sys 0.7.0",
- "libc",
-]
-
[[package]]
name = "core-foundation"
version = "0.9.3"
source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85"
dependencies = [
- "core-foundation-sys 0.8.3",
+ "core-foundation-sys",
"libc",
]
-[[package]]
-name = "core-foundation-sys"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-
[[package]]
name = "core-foundation-sys"
version = "0.8.3"
source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85"
-[[package]]
-name = "core-graphics"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
-dependencies = [
- "bitflags",
- "core-foundation 0.7.0",
- "foreign-types 0.3.2",
- "libc",
-]
-
[[package]]
name = "core-graphics"
version = "0.22.3"
source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85"
dependencies = [
"bitflags",
- "core-foundation 0.9.3",
+ "core-foundation",
"core-graphics-types",
- "foreign-types 0.3.2",
+ "foreign-types",
"libc",
]
@@ -1249,8 +1137,8 @@ version = "0.1.1"
source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85"
dependencies = [
"bitflags",
- "core-foundation 0.9.3",
- "foreign-types 0.3.2",
+ "core-foundation",
+ "foreign-types",
"libc",
]
@@ -1260,7 +1148,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b344b958cae90858bf6086f49599ecc5ec8698eacad0ea155509ba11fab347"
dependencies = [
- "core-foundation 0.9.3",
+ "core-foundation",
]
[[package]]
@@ -1269,25 +1157,12 @@ version = "19.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
dependencies = [
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types 0.3.2",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
"libc",
]
-[[package]]
-name = "core-video-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828"
-dependencies = [
- "cfg-if 0.1.10",
- "core-foundation-sys 0.7.0",
- "core-graphics 0.19.2",
- "libc",
- "objc",
-]
-
[[package]]
name = "cpp_demangle"
version = "0.3.5"
@@ -1502,27 +1377,6 @@ dependencies = [
"once_cell",
]
-[[package]]
-name = "crossfont"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1299695a4c6417b7e4a6957bd963478406e148b7b0351e2f2ce31296b0518251"
-dependencies = [
- "cocoa",
- "core-foundation 0.9.3",
- "core-foundation-sys 0.8.3",
- "core-graphics 0.22.3",
- "core-text",
- "dwrote",
- "foreign-types 0.5.0",
- "freetype-rs",
- "libc",
- "log",
- "pkg-config",
- "servo-fontconfig",
- "winapi 0.3.9",
-]
-
[[package]]
name = "crypto-common"
version = "0.1.4"
@@ -1553,12 +1407,6 @@ dependencies = [
"syn",
]
-[[package]]
-name = "cty"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
-
[[package]]
name = "curl"
version = "0.4.43"
@@ -1590,41 +1438,6 @@ dependencies = [
"winapi 0.3.9",
]
-[[package]]
-name = "darling"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim 0.10.0",
- "syn",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
-dependencies = [
- "darling_core",
- "quote",
- "syn",
-]
-
[[package]]
name = "data-url"
version = "0.1.1"
@@ -1760,33 +1573,12 @@ dependencies = [
"winapi 0.3.9",
]
-[[package]]
-name = "dispatch"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-
-[[package]]
-name = "dlib"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
-dependencies = [
- "libloading",
-]
-
[[package]]
name = "dotenv"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
-[[package]]
-name = "downcast-rs"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
[[package]]
name = "dwrote"
version = "0.11.0"
@@ -1795,8 +1587,6 @@ checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
dependencies = [
"lazy_static",
"libc",
- "serde",
- "serde_derive",
"winapi 0.3.9",
"wio",
]
@@ -1859,19 +1649,6 @@ version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
-[[package]]
-name = "embed-resource"
-version = "1.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc24ff8d764818e9ab17963b0593c535f077a513f565e75e4352d758bc4d8c0"
-dependencies = [
- "cc",
- "rustc_version 0.4.0",
- "toml",
- "vswhom",
- "winreg",
-]
-
[[package]]
name = "encoding_rs"
version = "0.8.31"
@@ -2013,18 +1790,6 @@ dependencies = [
"workspace",
]
-[[package]]
-name = "filetime"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "redox_syscall",
- "windows-sys",
-]
-
[[package]]
name = "fixedbitset"
version = "0.4.2"
@@ -2066,8 +1831,8 @@ source = "git+https://github.com/zed-industries/font-kit?rev=8eaf7a918eafa28b0a3
dependencies = [
"bitflags",
"byteorder",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
+ "core-foundation",
+ "core-graphics",
"core-text",
"dirs-next",
"dwrote",
@@ -2090,7 +1855,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58903f4f8d5b58c7d300908e4ebe5289c1bfdf5587964330f12023b8ff17fd1"
dependencies = [
"log",
- "memmap2 0.2.3",
+ "memmap2",
"ttf-parser 0.12.3",
]
@@ -2100,28 +1865,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
dependencies = [
- "foreign-types-shared 0.1.1",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared 0.3.1",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "foreign-types-shared",
]
[[package]]
@@ -2130,12 +1874,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
[[package]]
name = "form_urlencoded"
version = "1.0.1"
@@ -2156,17 +1894,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "freetype-rs"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb"
-dependencies = [
- "bitflags",
- "freetype-sys",
- "libc",
-]
-
[[package]]
name = "freetype-sys"
version = "0.13.1"
@@ -2189,35 +1916,16 @@ dependencies = [
"winapi 0.3.9",
]
-[[package]]
-name = "fsevent"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
-dependencies = [
- "bitflags",
- "fsevent-sys 2.0.1",
-]
-
[[package]]
name = "fsevent"
version = "2.0.2"
dependencies = [
"bitflags",
- "fsevent-sys 3.1.0",
+ "fsevent-sys",
"parking_lot 0.11.2",
"tempdir",
]
-[[package]]
-name = "fsevent-sys"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "fsevent-sys"
version = "3.1.0"
@@ -2434,17 +2142,6 @@ dependencies = [
"stable_deref_trait",
]
-[[package]]
-name = "gl_generator"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
-dependencies = [
- "khronos_api",
- "log",
- "xml-rs",
-]
-
[[package]]
name = "glob"
version = "0.3.0"
@@ -2464,78 +2161,6 @@ dependencies = [
"regex",
]
-[[package]]
-name = "glutin"
-version = "0.28.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00ea9dbe544bc8a657c4c4a798c2d16cd01b549820e47657297549d28371f6d2"
-dependencies = [
- "android_glue",
- "cgl",
- "cocoa",
- "core-foundation 0.9.3",
- "glutin_egl_sys",
- "glutin_emscripten_sys",
- "glutin_gles2_sys",
- "glutin_glx_sys",
- "glutin_wgl_sys",
- "lazy_static",
- "libloading",
- "log",
- "objc",
- "osmesa-sys",
- "parking_lot 0.11.2",
- "wayland-client",
- "wayland-egl",
- "winapi 0.3.9",
- "winit",
-]
-
-[[package]]
-name = "glutin_egl_sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2abb6aa55523480c4adc5a56bbaa249992e2dddb2fc63dc96e04a3355364c211"
-dependencies = [
- "gl_generator",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "glutin_emscripten_sys"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80de4146df76e8a6c32b03007bc764ff3249dcaeb4f675d68a06caf1bac363f1"
-
-[[package]]
-name = "glutin_gles2_sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103"
-dependencies = [
- "gl_generator",
- "objc",
-]
-
-[[package]]
-name = "glutin_glx_sys"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e393c8fc02b807459410429150e9c4faffdb312d59b8c038566173c81991351"
-dependencies = [
- "gl_generator",
- "x11-dl",
-]
-
-[[package]]
-name = "glutin_wgl_sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696"
-dependencies = [
- "gl_generator",
-]
-
[[package]]
name = "go_to_line"
version = "0.1.0"
@@ -2561,15 +2186,15 @@ dependencies = [
"cc",
"cocoa",
"collections",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
+ "core-foundation",
+ "core-graphics",
"core-text",
"ctor",
"dhat",
"env_logger",
"etagere",
"font-kit",
- "foreign-types 0.3.2",
+ "foreign-types",
"futures",
"gpui_macros",
"image",
@@ -2856,12 +2481,6 @@ dependencies = [
"tokio-native-tls",
]
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
[[package]]
name = "idna"
version = "0.2.3"
@@ -2927,26 +2546,6 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05a0bd019339e5d968b37855180087b7b9d512c5046fbd244cf8c95687927d6e"
-[[package]]
-name = "inotify"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f"
-dependencies = [
- "bitflags",
- "inotify-sys",
- "libc",
-]
-
-[[package]]
-name = "inotify-sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "instant"
version = "0.1.12"
@@ -2954,9 +2553,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
"cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
]
[[package]]
@@ -3076,12 +2672,6 @@ dependencies = [
"cc",
]
-[[package]]
-name = "jni-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
-
[[package]]
name = "jobserver"
version = "0.1.24"
@@ -3138,12 +2728,6 @@ dependencies = [
"winapi-build",
]
-[[package]]
-name = "khronos_api"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
-
[[package]]
name = "kurbo"
version = "0.8.3"
@@ -3193,12 +2777,6 @@ dependencies = [
"util",
]
-[[package]]
-name = "lazy-bytes-cast"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b"
-
[[package]]
name = "lazy_static"
version = "1.4.0"
@@ -3449,24 +3027,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "memmap2"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "memoffset"
version = "0.6.5"
@@ -3492,7 +3052,7 @@ dependencies = [
"bitflags",
"block",
"cocoa-foundation",
- "foreign-types 0.3.2",
+ "foreign-types",
"log",
"objc",
]
@@ -3664,59 +3224,6 @@ dependencies = [
"tempfile",
]
-[[package]]
-name = "ndk"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d"
-dependencies = [
- "bitflags",
- "jni-sys",
- "ndk-sys",
- "num_enum",
- "thiserror",
-]
-
-[[package]]
-name = "ndk-context"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
-
-[[package]]
-name = "ndk-glue"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "ndk",
- "ndk-context",
- "ndk-macro",
- "ndk-sys",
-]
-
-[[package]]
-name = "ndk-macro"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
-dependencies = [
- "darling",
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "ndk-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
-
[[package]]
name = "net2"
version = "0.2.37"
@@ -3741,17 +3248,6 @@ dependencies = [
"memoffset",
]
-[[package]]
-name = "nix"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f17df307904acd05aa8e32e97bb20f2a0df1728bbc2d771ae8f9a90463441e9"
-dependencies = [
- "bitflags",
- "cfg-if 1.0.0",
- "libc",
-]
-
[[package]]
name = "nom"
version = "7.1.1"
@@ -3762,24 +3258,6 @@ dependencies = [
"minimal-lexical",
]
-[[package]]
-name = "notify"
-version = "4.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257"
-dependencies = [
- "bitflags",
- "filetime",
- "fsevent 0.4.0",
- "fsevent-sys 2.0.1",
- "inotify",
- "libc",
- "mio 0.6.23",
- "mio-extras",
- "walkdir",
- "winapi 0.3.9",
-]
-
[[package]]
name = "num-bigint"
version = "0.4.3"
@@ -3861,27 +3339,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "num_enum"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
-dependencies = [
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
[[package]]
name = "num_threads"
version = "0.1.6"
@@ -3901,17 +3358,6 @@ dependencies = [
"objc_exception",
]
-[[package]]
-name = "objc-foundation"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
-dependencies = [
- "block",
- "objc",
- "objc_id",
-]
-
[[package]]
name = "objc_exception"
version = "0.1.2"
@@ -3921,15 +3367,6 @@ dependencies = [
"cc",
]
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
[[package]]
name = "object"
version = "0.28.4"
@@ -3962,7 +3399,7 @@ checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e"
dependencies = [
"bitflags",
"cfg-if 1.0.0",
- "foreign-types 0.3.2",
+ "foreign-types",
"libc",
"once_cell",
"openssl-macros",
@@ -4014,15 +3451,6 @@ version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
-[[package]]
-name = "osmesa-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b"
-dependencies = [
- "shared_library",
-]
-
[[package]]
name = "outline"
version = "0.1.0"
@@ -4136,7 +3564,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39fe46acc5503595e5949c17b818714d26fdf9b4920eacf3b2947f0199f4a6ff"
dependencies = [
- "rustc_version 0.3.3",
+ "rustc_version",
]
[[package]]
@@ -4358,16 +3786,6 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-[[package]]
-name = "proc-macro-crate"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
-dependencies = [
- "thiserror",
- "toml",
-]
-
[[package]]
name = "proc-macro-error"
version = "1.0.4"
@@ -1,7 +1,20 @@
use alacritty_terminal::term::TermMode;
use gpui::keymap::Keystroke;
-pub enum ModifierCombinations {
+/*
+Design notes:
+I would like terminal mode checking to be concealed behind the TerminalConnection in as many ways as possible.
+Alacritty has a lot of stuff intermixed for it's input handling. TerminalConnection should be in charge
+of anything that needs to conform to a standard that isn't handled by Term, e.g.:
+- Reporting mouse events correctly.
+- Reporting scrolls -> Depends on MOUSE_MODE, ALT_SCREEN, and ALTERNATE_SCROLL, etc.
+- Correctly bracketing a paste
+- Storing changed colors
+- Focus change sequence
+*/
+
+#[derive(Debug)]
+pub enum Modifiers {
None,
Alt,
Ctrl,
@@ -10,168 +23,168 @@ pub enum ModifierCombinations {
Other,
}
-impl ModifierCombinations {
+impl Modifiers {
fn new(ks: &Keystroke) -> Self {
match (ks.alt, ks.ctrl, ks.shift, ks.cmd) {
- (false, false, false, false) => ModifierCombinations::None,
- (true, false, false, false) => ModifierCombinations::Alt,
- (false, true, false, false) => ModifierCombinations::Ctrl,
- (false, false, true, false) => ModifierCombinations::Shift,
- (false, true, true, false) => ModifierCombinations::CtrlShift,
- _ => ModifierCombinations::Other,
+ (false, false, false, false) => Modifiers::None,
+ (true, false, false, false) => Modifiers::Alt,
+ (false, true, false, false) => Modifiers::Ctrl,
+ (false, false, true, false) => Modifiers::Shift,
+ (false, true, true, false) => Modifiers::CtrlShift,
+ _ => Modifiers::Other,
}
}
}
pub fn to_esc_str(keystroke: &Keystroke, mode: &TermMode) -> Option<String> {
- let modifiers = ModifierCombinations::new(&keystroke);
+ let modifiers = Modifiers::new(&keystroke);
// Manual Bindings including modifiers
let manual_esc_str = match (keystroke.key.as_ref(), modifiers) {
//Basic special keys
- ("space", ModifierCombinations::None) => Some(" ".to_string()),
- ("tab", ModifierCombinations::None) => Some("\x09".to_string()),
- ("escape", ModifierCombinations::None) => Some("\x1b".to_string()),
- ("enter", ModifierCombinations::None) => Some("\x0d".to_string()),
- ("backspace", ModifierCombinations::None) => Some("\x7f".to_string()),
+ ("space", Modifiers::None) => Some(" ".to_string()),
+ ("tab", Modifiers::None) => Some("\x09".to_string()),
+ ("escape", Modifiers::None) => Some("\x1b".to_string()),
+ ("enter", Modifiers::None) => Some("\x0d".to_string()),
+ ("backspace", Modifiers::None) => Some("\x7f".to_string()),
//Interesting escape codes
- ("tab", ModifierCombinations::Shift) => Some("\x1b[Z".to_string()),
- ("backspace", ModifierCombinations::Alt) => Some("\x1b\x7f".to_string()),
- ("backspace", ModifierCombinations::Shift) => Some("\x7f".to_string()),
- ("home", ModifierCombinations::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
+ ("tab", Modifiers::Shift) => Some("\x1b[Z".to_string()),
+ ("backspace", Modifiers::Alt) => Some("\x1b\x7f".to_string()),
+ ("backspace", Modifiers::Shift) => Some("\x7f".to_string()),
+ ("home", Modifiers::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
Some("\x1b[1;2H".to_string())
}
- ("end", ModifierCombinations::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
+ ("end", Modifiers::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
Some("\x1b[1;2F".to_string())
}
- ("pageup", ModifierCombinations::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
+ ("pageup", Modifiers::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
Some("\x1b[5;2~".to_string())
}
- ("pagedown", ModifierCombinations::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
+ ("pagedown", Modifiers::Shift) if mode.contains(TermMode::ALT_SCREEN) => {
Some("\x1b[6;2~".to_string())
}
- ("home", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("home", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOH".to_string())
}
- ("home", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("home", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[H".to_string())
}
- ("end", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("end", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOF".to_string())
}
- ("end", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("end", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[F".to_string())
}
- ("up", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("up", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOA".to_string())
}
- ("up", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("up", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[A".to_string())
}
- ("down", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("down", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOB".to_string())
}
- ("down", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("down", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[B".to_string())
}
- ("right", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("right", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOC".to_string())
}
- ("right", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("right", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[C".to_string())
}
- ("left", ModifierCombinations::None) if mode.contains(TermMode::APP_CURSOR) => {
+ ("left", Modifiers::None) if mode.contains(TermMode::APP_CURSOR) => {
Some("\x1bOD".to_string())
}
- ("left", ModifierCombinations::None) if !mode.contains(TermMode::APP_CURSOR) => {
+ ("left", Modifiers::None) if !mode.contains(TermMode::APP_CURSOR) => {
Some("\x1b[D".to_string())
}
- ("back", ModifierCombinations::None) => Some("\x7f".to_string()),
- ("insert", ModifierCombinations::None) => Some("\x1b[2~".to_string()),
- ("delete", ModifierCombinations::None) => Some("\x1b[3~".to_string()),
- ("pageup", ModifierCombinations::None) => Some("\x1b[5~".to_string()),
- ("pagedown", ModifierCombinations::None) => Some("\x1b[6~".to_string()),
- ("f1", ModifierCombinations::None) => Some("\x1bOP".to_string()),
- ("f2", ModifierCombinations::None) => Some("\x1bOQ".to_string()),
- ("f3", ModifierCombinations::None) => Some("\x1bOR".to_string()),
- ("f4", ModifierCombinations::None) => Some("\x1bOS".to_string()),
- ("f5", ModifierCombinations::None) => Some("\x1b[15~".to_string()),
- ("f6", ModifierCombinations::None) => Some("\x1b[17~".to_string()),
- ("f7", ModifierCombinations::None) => Some("\x1b[18~".to_string()),
- ("f8", ModifierCombinations::None) => Some("\x1b[19~".to_string()),
- ("f9", ModifierCombinations::None) => Some("\x1b[20~".to_string()),
- ("f10", ModifierCombinations::None) => Some("\x1b[21~".to_string()),
- ("f11", ModifierCombinations::None) => Some("\x1b[23~".to_string()),
- ("f12", ModifierCombinations::None) => Some("\x1b[24~".to_string()),
- ("f13", ModifierCombinations::None) => Some("\x1b[25~".to_string()),
- ("f14", ModifierCombinations::None) => Some("\x1b[26~".to_string()),
- ("f15", ModifierCombinations::None) => Some("\x1b[28~".to_string()),
- ("f16", ModifierCombinations::None) => Some("\x1b[29~".to_string()),
- ("f17", ModifierCombinations::None) => Some("\x1b[31~".to_string()),
- ("f18", ModifierCombinations::None) => Some("\x1b[32~".to_string()),
- ("f19", ModifierCombinations::None) => Some("\x1b[33~".to_string()),
- ("f20", ModifierCombinations::None) => Some("\x1b[34~".to_string()),
+ ("back", Modifiers::None) => Some("\x7f".to_string()),
+ ("insert", Modifiers::None) => Some("\x1b[2~".to_string()),
+ ("delete", Modifiers::None) => Some("\x1b[3~".to_string()),
+ ("pageup", Modifiers::None) => Some("\x1b[5~".to_string()),
+ ("pagedown", Modifiers::None) => Some("\x1b[6~".to_string()),
+ ("f1", Modifiers::None) => Some("\x1bOP".to_string()),
+ ("f2", Modifiers::None) => Some("\x1bOQ".to_string()),
+ ("f3", Modifiers::None) => Some("\x1bOR".to_string()),
+ ("f4", Modifiers::None) => Some("\x1bOS".to_string()),
+ ("f5", Modifiers::None) => Some("\x1b[15~".to_string()),
+ ("f6", Modifiers::None) => Some("\x1b[17~".to_string()),
+ ("f7", Modifiers::None) => Some("\x1b[18~".to_string()),
+ ("f8", Modifiers::None) => Some("\x1b[19~".to_string()),
+ ("f9", Modifiers::None) => Some("\x1b[20~".to_string()),
+ ("f10", Modifiers::None) => Some("\x1b[21~".to_string()),
+ ("f11", Modifiers::None) => Some("\x1b[23~".to_string()),
+ ("f12", Modifiers::None) => Some("\x1b[24~".to_string()),
+ ("f13", Modifiers::None) => Some("\x1b[25~".to_string()),
+ ("f14", Modifiers::None) => Some("\x1b[26~".to_string()),
+ ("f15", Modifiers::None) => Some("\x1b[28~".to_string()),
+ ("f16", Modifiers::None) => Some("\x1b[29~".to_string()),
+ ("f17", Modifiers::None) => Some("\x1b[31~".to_string()),
+ ("f18", Modifiers::None) => Some("\x1b[32~".to_string()),
+ ("f19", Modifiers::None) => Some("\x1b[33~".to_string()),
+ ("f20", Modifiers::None) => Some("\x1b[34~".to_string()),
// NumpadEnter, Action::Esc("\n".into());
//Mappings for caret notation keys
- ("a", ModifierCombinations::Ctrl) => Some("\x01".to_string()), //1
- ("A", ModifierCombinations::CtrlShift) => Some("\x01".to_string()), //1
- ("b", ModifierCombinations::Ctrl) => Some("\x02".to_string()), //2
- ("B", ModifierCombinations::CtrlShift) => Some("\x02".to_string()), //2
- ("c", ModifierCombinations::Ctrl) => Some("\x03".to_string()), //3
- ("C", ModifierCombinations::CtrlShift) => Some("\x03".to_string()), //3
- ("d", ModifierCombinations::Ctrl) => Some("\x04".to_string()), //4
- ("D", ModifierCombinations::CtrlShift) => Some("\x04".to_string()), //4
- ("e", ModifierCombinations::Ctrl) => Some("\x05".to_string()), //5
- ("E", ModifierCombinations::CtrlShift) => Some("\x05".to_string()), //5
- ("f", ModifierCombinations::Ctrl) => Some("\x06".to_string()), //6
- ("F", ModifierCombinations::CtrlShift) => Some("\x06".to_string()), //6
- ("g", ModifierCombinations::Ctrl) => Some("\x07".to_string()), //7
- ("G", ModifierCombinations::CtrlShift) => Some("\x07".to_string()), //7
- ("h", ModifierCombinations::Ctrl) => Some("\x08".to_string()), //8
- ("H", ModifierCombinations::CtrlShift) => Some("\x08".to_string()), //8
- ("i", ModifierCombinations::Ctrl) => Some("\x09".to_string()), //9
- ("I", ModifierCombinations::CtrlShift) => Some("\x09".to_string()), //9
- ("j", ModifierCombinations::Ctrl) => Some("\x0a".to_string()), //10
- ("J", ModifierCombinations::CtrlShift) => Some("\x0a".to_string()), //10
- ("k", ModifierCombinations::Ctrl) => Some("\x0b".to_string()), //11
- ("K", ModifierCombinations::CtrlShift) => Some("\x0b".to_string()), //11
- ("l", ModifierCombinations::Ctrl) => Some("\x0c".to_string()), //12
- ("L", ModifierCombinations::CtrlShift) => Some("\x0c".to_string()), //12
- ("m", ModifierCombinations::Ctrl) => Some("\x0d".to_string()), //13
- ("M", ModifierCombinations::CtrlShift) => Some("\x0d".to_string()), //13
- ("n", ModifierCombinations::Ctrl) => Some("\x0e".to_string()), //14
- ("N", ModifierCombinations::CtrlShift) => Some("\x0e".to_string()), //14
- ("o", ModifierCombinations::Ctrl) => Some("\x0f".to_string()), //15
- ("O", ModifierCombinations::CtrlShift) => Some("\x0f".to_string()), //15
- ("p", ModifierCombinations::Ctrl) => Some("\x10".to_string()), //16
- ("P", ModifierCombinations::CtrlShift) => Some("\x10".to_string()), //16
- ("q", ModifierCombinations::Ctrl) => Some("\x11".to_string()), //17
- ("Q", ModifierCombinations::CtrlShift) => Some("\x11".to_string()), //17
- ("r", ModifierCombinations::Ctrl) => Some("\x12".to_string()), //18
- ("R", ModifierCombinations::CtrlShift) => Some("\x12".to_string()), //18
- ("s", ModifierCombinations::Ctrl) => Some("\x13".to_string()), //19
- ("S", ModifierCombinations::CtrlShift) => Some("\x13".to_string()), //19
- ("t", ModifierCombinations::Ctrl) => Some("\x14".to_string()), //20
- ("T", ModifierCombinations::CtrlShift) => Some("\x14".to_string()), //20
- ("u", ModifierCombinations::Ctrl) => Some("\x15".to_string()), //21
- ("U", ModifierCombinations::CtrlShift) => Some("\x15".to_string()), //21
- ("v", ModifierCombinations::Ctrl) => Some("\x16".to_string()), //22
- ("V", ModifierCombinations::CtrlShift) => Some("\x16".to_string()), //22
- ("w", ModifierCombinations::Ctrl) => Some("\x17".to_string()), //23
- ("W", ModifierCombinations::CtrlShift) => Some("\x17".to_string()), //23
- ("x", ModifierCombinations::Ctrl) => Some("\x18".to_string()), //24
- ("X", ModifierCombinations::CtrlShift) => Some("\x18".to_string()), //24
- ("y", ModifierCombinations::Ctrl) => Some("\x19".to_string()), //25
- ("Y", ModifierCombinations::CtrlShift) => Some("\x19".to_string()), //25
- ("z", ModifierCombinations::Ctrl) => Some("\x1a".to_string()), //26
- ("Z", ModifierCombinations::CtrlShift) => Some("\x1a".to_string()), //26
- ("@", ModifierCombinations::Ctrl) => Some("\x00".to_string()), //0
- ("[", ModifierCombinations::Ctrl) => Some("\x1b".to_string()), //27
- ("\\", ModifierCombinations::Ctrl) => Some("\x1c".to_string()), //28
- ("]", ModifierCombinations::Ctrl) => Some("\x1d".to_string()), //29
- ("^", ModifierCombinations::Ctrl) => Some("\x1e".to_string()), //30
- ("_", ModifierCombinations::Ctrl) => Some("\x1f".to_string()), //31
- ("?", ModifierCombinations::Ctrl) => Some("\x7f".to_string()), //127
+ ("a", Modifiers::Ctrl) => Some("\x01".to_string()), //1
+ ("A", Modifiers::CtrlShift) => Some("\x01".to_string()), //1
+ ("b", Modifiers::Ctrl) => Some("\x02".to_string()), //2
+ ("B", Modifiers::CtrlShift) => Some("\x02".to_string()), //2
+ ("c", Modifiers::Ctrl) => Some("\x03".to_string()), //3
+ ("C", Modifiers::CtrlShift) => Some("\x03".to_string()), //3
+ ("d", Modifiers::Ctrl) => Some("\x04".to_string()), //4
+ ("D", Modifiers::CtrlShift) => Some("\x04".to_string()), //4
+ ("e", Modifiers::Ctrl) => Some("\x05".to_string()), //5
+ ("E", Modifiers::CtrlShift) => Some("\x05".to_string()), //5
+ ("f", Modifiers::Ctrl) => Some("\x06".to_string()), //6
+ ("F", Modifiers::CtrlShift) => Some("\x06".to_string()), //6
+ ("g", Modifiers::Ctrl) => Some("\x07".to_string()), //7
+ ("G", Modifiers::CtrlShift) => Some("\x07".to_string()), //7
+ ("h", Modifiers::Ctrl) => Some("\x08".to_string()), //8
+ ("H", Modifiers::CtrlShift) => Some("\x08".to_string()), //8
+ ("i", Modifiers::Ctrl) => Some("\x09".to_string()), //9
+ ("I", Modifiers::CtrlShift) => Some("\x09".to_string()), //9
+ ("j", Modifiers::Ctrl) => Some("\x0a".to_string()), //10
+ ("J", Modifiers::CtrlShift) => Some("\x0a".to_string()), //10
+ ("k", Modifiers::Ctrl) => Some("\x0b".to_string()), //11
+ ("K", Modifiers::CtrlShift) => Some("\x0b".to_string()), //11
+ ("l", Modifiers::Ctrl) => Some("\x0c".to_string()), //12
+ ("L", Modifiers::CtrlShift) => Some("\x0c".to_string()), //12
+ ("m", Modifiers::Ctrl) => Some("\x0d".to_string()), //13
+ ("M", Modifiers::CtrlShift) => Some("\x0d".to_string()), //13
+ ("n", Modifiers::Ctrl) => Some("\x0e".to_string()), //14
+ ("N", Modifiers::CtrlShift) => Some("\x0e".to_string()), //14
+ ("o", Modifiers::Ctrl) => Some("\x0f".to_string()), //15
+ ("O", Modifiers::CtrlShift) => Some("\x0f".to_string()), //15
+ ("p", Modifiers::Ctrl) => Some("\x10".to_string()), //16
+ ("P", Modifiers::CtrlShift) => Some("\x10".to_string()), //16
+ ("q", Modifiers::Ctrl) => Some("\x11".to_string()), //17
+ ("Q", Modifiers::CtrlShift) => Some("\x11".to_string()), //17
+ ("r", Modifiers::Ctrl) => Some("\x12".to_string()), //18
+ ("R", Modifiers::CtrlShift) => Some("\x12".to_string()), //18
+ ("s", Modifiers::Ctrl) => Some("\x13".to_string()), //19
+ ("S", Modifiers::CtrlShift) => Some("\x13".to_string()), //19
+ ("t", Modifiers::Ctrl) => Some("\x14".to_string()), //20
+ ("T", Modifiers::CtrlShift) => Some("\x14".to_string()), //20
+ ("u", Modifiers::Ctrl) => Some("\x15".to_string()), //21
+ ("U", Modifiers::CtrlShift) => Some("\x15".to_string()), //21
+ ("v", Modifiers::Ctrl) => Some("\x16".to_string()), //22
+ ("V", Modifiers::CtrlShift) => Some("\x16".to_string()), //22
+ ("w", Modifiers::Ctrl) => Some("\x17".to_string()), //23
+ ("W", Modifiers::CtrlShift) => Some("\x17".to_string()), //23
+ ("x", Modifiers::Ctrl) => Some("\x18".to_string()), //24
+ ("X", Modifiers::CtrlShift) => Some("\x18".to_string()), //24
+ ("y", Modifiers::Ctrl) => Some("\x19".to_string()), //25
+ ("Y", Modifiers::CtrlShift) => Some("\x19".to_string()), //25
+ ("z", Modifiers::Ctrl) => Some("\x1a".to_string()), //26
+ ("Z", Modifiers::CtrlShift) => Some("\x1a".to_string()), //26
+ ("@", Modifiers::Ctrl) => Some("\x00".to_string()), //0
+ ("[", Modifiers::Ctrl) => Some("\x1b".to_string()), //27
+ ("\\", Modifiers::Ctrl) => Some("\x1c".to_string()), //28
+ ("]", Modifiers::Ctrl) => Some("\x1d".to_string()), //29
+ ("^", Modifiers::Ctrl) => Some("\x1e".to_string()), //30
+ ("_", Modifiers::Ctrl) => Some("\x1f".to_string()), //31
+ ("?", Modifiers::Ctrl) => Some("\x7f".to_string()), //127
_ => None,
};
if manual_esc_str.is_some() {
@@ -226,62 +239,6 @@ pub fn to_esc_str(keystroke: &Keystroke, mode: &TermMode) -> Option<String> {
}
}
-/*
-New keybindings test plan:
-
-Is the terminal still usable? YES!
-Do ctrl-shift-[X] and ctrl-[x] do the same thing? I THINK SO
-Does ctrl-l work? YES
-Does tab work? YES
-Do all the global overrides (up, down, enter, escape, ctrl-c) work? => YES
-Space also doesn't work YES!
-
-
-
-So, to match alacritty keyboard handling, we need to check APP_CURSOR, and ALT_SCREEN
-
-And we need to convert the strings that GPUI returns to keys
-
-And we need a way of easily declaring and matching a modifier pattern on those keys
-
-And we need to block writing the input to the pty if any of these match
-
-And I need to figure out how to express this in a cross platform way
-
-And a way of optionally interfacing this with actions for rebinding in defaults.json
-
-Design notes:
-I would like terminal mode checking to be concealed behind the TerminalConnection in as many ways as possible.
-Alacritty has a lot of stuff intermixed for it's input handling. TerminalConnection should be in charge
-of anything that needs to conform to a standard that isn't handled by Term, e.g.:
-- Reporting mouse events correctly.
-- Reporting scrolls -> Depends on MOUSE_MODE, ALT_SCREEN, and ALTERNATE_SCROLL, etc.
-- Correctly bracketing a paste
-- Storing changed colors
-- Focus change sequence
-
-Scrolling might be handled internally or externally, need a way to ask. Everything else should probably happen internally.
-
-Standards/OS compliance is in connection.rs.
-This takes GPUI events and translates them to the correct terminal stuff
-This means that standards compliance outside of connection should be kept to a minimum. Yes, this feels good.
-Connection needs to be split up then, into a bunch of event handlers
-
-Punting on these by pushing them up to a scrolling element
-(either on dispatch_event directly or a seperate scrollbar)
- Home, ModifiersState::SHIFT, ~BindingMode::ALT_SCREEN; Action::ScrollToTop;
- End, ModifiersState::SHIFT, ~BindingMode::ALT_SCREEN; Action::ScrollToBottom;
- PageUp, ModifiersState::SHIFT, ~BindingMode::ALT_SCREEN; Action::ScrollPageUp;
- PageDown, ModifiersState::SHIFT, ~BindingMode::ALT_SCREEN; Action::ScrollPageDown;
-
-
-
-NOTE, THE FOLLOWING HAS 2 BINDINGS:
-K, ModifiersState::LOGO, Action::Esc("\x0c".into());
-K, ModifiersState::LOGO, Action::ClearHistory; => ctx.terminal_mut().clear_screen(ClearMode::Saved),
-
-*/
-
/// Code Modifiers
/// ---------+---------------------------
/// 2 | Shift
@@ -312,9 +269,47 @@ mod test {
use super::*;
#[test]
- fn test_match_alacritty_keybindings() {
- let bindings = alacritty::config::bindings::default_key_bindings();
- //TODO
+ fn test_application_mode() {
+ let app_cursor = TermMode::APP_CURSOR;
+ let none = TermMode::NONE;
+
+ let up = Keystroke::parse("up").unwrap();
+ let down = Keystroke::parse("down").unwrap();
+ let left = Keystroke::parse("left").unwrap();
+ let right = Keystroke::parse("right").unwrap();
+
+ assert_eq!(to_esc_str(&up, &none), Some("\x1b[A".to_string()));
+ assert_eq!(to_esc_str(&down, &none), Some("\x1b[B".to_string()));
+ assert_eq!(to_esc_str(&right, &none), Some("\x1b[C".to_string()));
+ assert_eq!(to_esc_str(&left, &none), Some("\x1b[D".to_string()));
+
+ assert_eq!(to_esc_str(&up, &app_cursor), Some("\x1bOA".to_string()));
+ assert_eq!(to_esc_str(&down, &app_cursor), Some("\x1bOB".to_string()));
+ assert_eq!(to_esc_str(&right, &app_cursor), Some("\x1bOC".to_string()));
+ assert_eq!(to_esc_str(&left, &app_cursor), Some("\x1bOD".to_string()));
+ }
+
+ #[test]
+ fn test_ctrl_codes() {
+ let letters_lower = 'a'..='z';
+ let letters_upper = 'A'..='Z';
+ let mode = TermMode::ANY;
+
+ for (lower, upper) in letters_lower.zip(letters_upper) {
+ assert_eq!(
+ to_esc_str(
+ &Keystroke::parse(&format!("ctrl-{}", lower)).unwrap(),
+ &mode
+ ),
+ to_esc_str(
+ &Keystroke::parse(&format!("ctrl-shift-{}", upper)).unwrap(),
+ &mode
+ ),
+ "On letter: {}/{}",
+ lower,
+ upper
+ )
+ }
}
#[test]