helix-editor / helix Goto Github PK
View Code? Open in Web Editor NEWA post-modern modal text editor.
Home Page: https://helix-editor.com
License: Mozilla Public License 2.0
A post-modern modal text editor.
Home Page: https://helix-editor.com
License: Mozilla Public License 2.0
I insert 一a
and it paniced. 0a6672c
thread 'main' panicked at 'assertion failed: self.len_after == other.len', helix-core/src/transaction.rs:127:9
stack backtrace:
0: rust_begin_unwind
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
1: core::panicking::panic_fmt
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:92:14
2: core::panicking::panic
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:50:5
3: helix_core::transaction::ChangeSet::compose
at ./helix-core/src/transaction.rs:127:9
4: helix_view::document::Document::apply::{{closure}}
at ./helix-view/src/document.rs:331:17
5: helix_view::document::take_with::{{closure}}
at ./helix-view/src/document.rs:61:68
6: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:344:9
7: std::panicking::try::do_call
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:379:40
8: __rust_try
9: std::panicking::try
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:343:19
10: std::panic::catch_unwind
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:431:14
11: helix_view::document::take_with
at ./helix-view/src/document.rs:61:21
12: helix_view::document::Document::apply
at ./helix-view/src/document.rs:330:13
13: hx::commands::insert::insert_char
at ./helix-term/src/commands.rs:1613:17
14: hx::ui::editor::EditorView::insert_mode
at ./helix-term/src/ui/editor.rs:476:13
15: <hx::ui::editor::EditorView as hx::compositor::Component>::handle_event
at ./helix-term/src/ui/editor.rs:579:33
16: hx::compositor::Compositor::handle_event
at ./helix-term/src/compositor.rs:112:19
17: hx::application::Application::handle_terminal_events
at ./helix-term/src/application.rs:132:32
18: hx::application::Application::event_loop::{{closure}}
at ./helix-term/src/application.rs:96:21
19: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
20: hx::application::Application::run::{{closure}}
at ./helix-term/src/application.rs:254:9
21: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
22: hx::main::{{closure}}
at ./helix-term/src/main.rs:121:5
23: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
24: tokio::park::thread::CachedParkThread::block_on::{{closure}}
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/park/thread.rs:263:54
25: tokio::coop::with_budget::{{closure}}
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:106:9
26: std::thread::local::LocalKey<T>::try_with
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272:16
27: std::thread::local::LocalKey<T>::with
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248:9
28: tokio::coop::with_budget
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:99:5
29: tokio::coop::budget
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:76:5
30: tokio::park::thread::CachedParkThread::block_on
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/park/thread.rs:263:31
31: tokio::runtime::enter::Enter::block_on
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/enter.rs:151:13
32: tokio::runtime::thread_pool::ThreadPool::block_on
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/thread_pool/mod.rs:71:9
33: tokio::runtime::Runtime::block_on
at /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/mod.rs:452:43
34: hx::main
at ./helix-term/src/main.rs:123:5
35: core::ops::function::FnOnce::call_once
at /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
Not sure if this is the right place to request. If this is not the right place, please redirect me to the correct one.
Let's publish this to crates.io, so that we can do something like
cargo install helix-editor
given helix
is already taken.
:ear ~1f
and :lat 1h
in vim IIRC
And also history branching like g+
and g-
, not sure if kakoune supports them but I miss them.
The cursor becomes invisible whenever you're at the beginning of the first line in a given file.
Environment
Video
https://asciinema.org/a/NdbwogdBq8Psqgn1TEoiBCdGm
Steps to reproduce
content is
asdf
asdf
asdf
thread 'main' panicked at 'Attempt to index past end of slice: char index 18446744073709551615, slice char length 21', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\ropey-1.2.0\src\slice.rs:301:9
stack backtrace:
0: 0x7ff6255d17ce - <unknown>
1: 0x7ff6255edabc - <unknown>
2: 0x7ff6255cd6b8 - <unknown>
3: 0x7ff6255d473d - <unknown>
4: 0x7ff6255d4209 - <unknown>
5: 0x7ff6252e5103 - <unknown>
6: 0x7ff6255d4e25 - <unknown>
7: 0x7ff6255d4991 - <unknown>
8: 0x7ff6255d20ef - <unknown>
9: 0x7ff6255d48e9 - <unknown>
10: 0x7ff6256f22cc - tree_sitter_typescript
11: 0x7ff6254c7ce5 - <unknown>
12: 0x7ff6254cc7cb - <unknown>
13: 0x7ff62539b4d0 - <unknown>
14: 0x7ff62530cacc - <unknown>
15: 0x7ff62530b45b - <unknown>
16: 0x7ff6252d810b - <unknown>
17: 0x7ff6252f93d9 - <unknown>
18: 0x7ff6252d5e95 - <unknown>
19: 0x7ff62527197a - <unknown>
20: 0x7ff62526ce62 - <unknown>
21: 0x7ff625264fc6 - <unknown>
22: 0x7ff625264fea - <unknown>
23: 0x7ff6255d4f87 - <unknown>
24: 0x7ff62526d6b7 - <unknown>
25: 0x7ff6256da744 - tree_sitter_typescript
26: 0x7ffedce17034 - BaseThreadInitThunk
27: 0x7ffede042651 - RtlUserThreadStart
Whenever I save a file (:write
) with LSP enabled (e.g., solargraph for Ruby or rust-analyzer for Rust) the editor halts for 1-2 seconds until finally finishing. This behaviour isn't present when LSP is disabled.
Terminal kakoune
Helix using latest master 661dbdc
When resizing terminal to a larger terminal size (full size), it takes like 2-3 wall clock seconds, but resizing it to a smaller terminal size doesn't cost much. It's like lagged for a bit.
I noticed that your website references creating a gui with skia/skulpin. That sounds very similar to my architecture for neovide which is a gui for neovim.
A not broadly stated goal for neovide is to eventually expose the graphical parts as a swappable front end for other text editors such as what helix looks like. I was curious if you are interested in such a collaboration. Getting a gui right is hard work (as I've found out), I think collaborating would be great for both use cases!
Are you planning on exposing a gui protocol ala neovim's? If so what would that look like/what features do you think would be useful for helix that are unique to helix? The editor looks very cool btw!
In the root of my current project I have a Gemfile
. In a sub directory relative to the root I also have a Gemfile
. Opening the file picker and searching for Gemfile
only result in sub-directory/Gemfile
. The root Gemfile
isn't matched. In fact, a lot of the root level files aren't matched. Rakefile
and Procfile
are not matched while Dockerfile
and Guardfile
are.
In a smaller project, these files are found just fine.
Looks like this might be the culprit
helix/helix-term/src/ui/mod.rs
Lines 88 to 91 in c67e318
If the project is large enough, this might exclude files exceeding MAX
. Since the picker isn't updating the set of files upon filtering, some files will always be excluded.
My Rust knowledge is pretty much non-existent, but would it make sense to pass the iterator directly to the picker and let the Picker
limit the iterator after matching?
helix/helix-term/src/ui/picker.rs
Lines 79 to 91 in c67e318
So if self.options
now is the files
iterator containing all results, we could limit the results by adding .take(MAX)
at the end and end up with something like:
self.options
.enumerate()
.filter_map(|(index, option)| {
let text = (format_fn)(option);
matcher.fuzzy_match(&text, pattern).map(|score| (index, score))
})
.take(MAX),
Hello!
I love the project! ❤️
However I cannot seem to get my head around setting the runtime variable to get syntax highllighting and stuffz for my Go projects or Typescript/Javascript or Rust projects.
I move the hx
binary into the different projects, however it does not seem to pickup the runtime.
Could you provide a example for let's say a Go project using go.mod and explicitly setting the HELIX_RUNTIME variable for that?
I downloaded the zip file from the release
page:
C:\devel>c:\bin\helix-v0.0.7-x86_64-windows\hx.exe
thread 'main' panicked at 'Attempt to slice past end of RopeSlice: slice end 1, RopeSlice length 0', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\ropey-1.2.0\src\slice.rs:784:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
C:\devel>set RUST_BACKTRACE=1
C:\devel>c:\bin\helix-v0.0.7-x86_64-windows\hx.exe
thread 'main' panicked at 'index out of bounds: the len is 10600 but the index is 10600', helix-tui\src\buffer.rs:185:14
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
C:\devel>set RUST_BACKTRACE=full
C:\devel>c:\bin\helix-v0.0.7-x86_64-windows\hx.exe
thread 'main' panicked at 'index out of bounds: the len is 10600 but the index is 10600', helix-tui\src\buffer.rs:185:14
stack backtrace:
0: 0x7ff67e8918de - <unknown>
1: 0x7ff67e8adb0c - <unknown>
2: 0x7ff67e88d7c8 - <unknown>
3: 0x7ff67e89484d - <unknown>
4: 0x7ff67e894319 - <unknown>
5: 0x7ff67e5a5513 - <unknown>
6: 0x7ff67e894f35 - <unknown>
7: 0x7ff67e894aa1 - <unknown>
8: 0x7ff67e8921ff - <unknown>
9: 0x7ff67e8949f9 - <unknown>
10: 0x7ff67e9a8910 - tree_sitter_typescript
11: 0x7ff67e9a88d7 - tree_sitter_typescript
12: 0x7ff67e68305f - <unknown>
13: 0x7ff67e5bf271 - <unknown>
14: 0x7ff67e5a5173 - <unknown>
15: 0x7ff67e598739 - <unknown>
16: 0x7ff67e5b98e9 - <unknown>
17: 0x7ff67e52e2f1 - <unknown>
18: 0x7ff67e51c7a6 - <unknown>
19: 0x7ff67e51c7ca - <unknown>
20: 0x7ff67e895097 - <unknown>
21: 0x7ff67e52ed37 - <unknown>
22: 0x7ff67e9905d0 - tree_sitter_typescript
23: 0x7ffaadaf7c24 - BaseThreadInitThunk
24: 0x7ffaaf9ed721 - RtlUserThreadStart
For Arch Linux
when I run the command hx
(v0.0.6 binary from the release page) on Windows 10 it panics immediately with
thread 'main' panicked at 'index out of bounds: the len is 3451 but the index is 3451', helix-tui\src\buffer.rs:185:14
I'm using Windows Terminal, and the len changes depending on the terminal size.
Will there be any external command support? I think that would provide a way to do what internal command missing on early stage, like grep, git etc.
This work seems very elegant :) For daily usage it would be better to create some customary key-bindings and some scripts to invoke command line applications. I am wondering that if there is some contents describe the way to do so. Rust is indeed a good language, hope they can compose well
If on empy line press l
cursor moves to line above
brew tap helix-editor/helix
expects the homebrew tap to resolve to https://github.com/helix-editor/homebrew-helix
, but I cannot see that repository.
Just installed helix from source and was playing around by entering some text and immediately panics after hitting enter:
package main
thread 'main' panicked at 'Attempt to index past end of Rope: char index 12, Rope char length 12',
For example trying to open the hx
binary:
❯ hx target/debug/hx
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: stream did not contain valid UTF-8', helix-term/src/main.rs:117:46
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I don't know if there is a plan to support other text encodings but it sure would be nice to just be able to view a raw binary file as a fallback. The current implementation of Document
uses Rope
internally, from what I've seen it accepts only valid UTF-8 so not really sure how it could be handled here.
It would be nice if you could yank the current selection to the system clipboard.
I get this running on Windows. I am running in the clone folder itself.
thread 'main' panicked at 'index out of bounds: the len is 2496 but the index is 2496', helix-tui\src\buffer.rs:185:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I just installed helix using cargo. Running hx
and then immediately typing dd
causes:
thread 'main' panicked at 'Attempt to slice past end of RopeSlice: slice end 1, RopeSlice length 0'
The first input of d
also causes the line number 1
to disappear.
I'm on Debian Jessie but the HOME
is read-only atm.
So I set CARGO_HOME
to a writable location and installed helix from source as specified in the README.
The runtime
folder was copied to $CARGO_HOME/bin
.
I tested this setup on another machine (OSX) with writable home and it works properly there.
On the Debian however, I get
Error: failed to initialize logging
Caused by:
Read-only file system (os error 30)
when starting hx
.
revision: c2e6b9f
command run: nix build github:helix-editor/helix#packages.aarch64-linux.helix
nix log:
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/9rnfggm9r7k7rxz1bkl3icmmzinpdnhf-dummy-src
source root is dummy-src
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
[naersk] cargo_version (read): 1.53.0-nightly (4369396ce 2021-04-27)
[naersk] cargo_message_format (set): json-diagnostic-rendered-ansi
[naersk] cargo_release: --release
[naersk] cargo_options: -Z unstable-options
[naersk] cargo_build_options: $cargo_release -j "$NIX_BUILD_CORES" --out-dir out --message-format=$cargo_message_format
[naersk] cargo_test_options: $cargo_release -j "$NIX_BUILD_CORES"
[naersk] RUST_TEST_THREADS: 6
[naersk] cargo_bins_jq_filter: .
[naersk] cargo_build_output_json (created): /build/tmp.bl4oqH4Y6P
[naersk] crate_sources: /nix/store/6f7xan6f575bx24p0w2fxgbpqb9lminm-crates-io
[naersk] RUSTFLAGS:
[naersk] CARGO_BUILD_RUSTFLAGS:
[naersk] CARGO_BUILD_RUSTFLAGS (updated): --remap-path-prefix /nix/store/6f7xan6f575bx24p0w2fxgbpqb9lminm-crates-io=/sources
@nix { "action": "setPhase", "phase": "buildPhase" }
building
cargo -Z unstable-options build $cargo_release -j "$NIX_BUILD_CORES" --out-dir out --message-format=$cargo_message_format
�[0m�[0m�[1m�[32m Updating�[0m git repository `https://github.com/paritytech/jsonrpc`
�[0m�[0m�[1m�[33mwarning�[0m�[1m:�[0m spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
�[0m�[0m�[1m�[33mwarning�[0m�[1m:�[0m spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
�[0m�[0m�[1m�[31merror�[0m�[1m:�[0m failed to get `jsonrpc-core` as a dependency of package `helix-lsp v0.1.0 (/build/dummy-src/helix-lsp)`
Caused by:
failed to load source for dependency `jsonrpc-core`
Caused by:
Unable to update https://github.com/paritytech/jsonrpc#609d7a6c
Caused by:
failed to clone into: /build/dummy-src/.cargo-home/git/db/jsonrpc-22a65938f7d26b63
Caused by:
network failure seems to have happened
if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
Caused by:
failed to resolve address for github.com: Name or service not known; class=Net (12)
[naersk] cargo returned with exit code 101, exiting
First thing I did in helix is ctrl-f and I am surprised it didn't work, pagedown is too far for me to press.
When open on an empty buffer, hitting the keys dfn
causes a panic:
thread 'main' panicked at 'Attempt to index past end of RopeSlice: char index 1, RopeSlice char length 0', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.2.0/src/slice.rs:917:9
stack backtrace:
0: 0x108655354 - __mh_execute_header
1: 0x10867327e - __mh_execute_header
2: 0x108651166 - __mh_execute_header
3: 0x1086574f9 - __mh_execute_header
4: 0x108656fe0 - __mh_execute_header
5: 0x10820bb9a - __mh_execute_header
6: 0x108657b88 - __mh_execute_header
7: 0x1086576a5 - __mh_execute_header
8: 0x1086557b8 - __mh_execute_header
9: 0x10865760a - __mh_execute_header
10: 0x108695ebb - __mh_execute_header
11: 0x10841a6d5 - __mh_execute_header
12: 0x1081af951 - __mh_execute_header
13: 0x108229285 - __mh_execute_header
14: 0x108247b57 - __mh_execute_header
15: 0x108207d6d - __mh_execute_header
16: 0x108243bac - __mh_execute_header
17: 0x1081bfe8f - __mh_execute_header
18: 0x10820e34a - __mh_execute_header
19: 0x10825d27a - __mh_execute_header
20: 0x10825772c - __mh_execute_header
21: 0x108657ed4 - __mh_execute_header
22: 0x10820e729 - __mh_execute_header
Version: 0.0.6 (prebuilt)
OS: macos
Running hx
on a non-existent file (to create it) will panic on osx. File has to be created before hx
can open/edit
hx test.go
---
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: No such file or directory (os error 2)', helix-term/src/main.rs:117:46
To reproduce:
cargo run
:q
I am on arch linux, using xterm. This looks like off-by-one error handling terminal screen size.
$ RUST_BACKTRACE=1 cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.83s
Running `target/debug/hx`
thread 'main' panicked at 'Trying to access position outside the buffer: x=89, y=45, area=Rect { x: 0, y: 0, width: 89, height: 50 }', helix-tui/src/buffer.rs:217:9
stack backtrace:
0: rust_begin_unwind
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
1: std::panicking::begin_panic_fmt
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:435:5
2: helix_tui::buffer::Buffer::index_of
at ./helix-tui/src/buffer.rs:217:9
3: helix_tui::buffer::Buffer::get_mut
at ./helix-tui/src/buffer.rs:184:17
4: helix_tui::buffer::Buffer::clear_with
at ./helix-tui/src/buffer.rs:395:28
5: hx::ui::prompt::Prompt::render_prompt
at ./helix-term/src/ui/prompt.rs:166:13
6: <hx::ui::prompt::Prompt as hx::compositor::Component>::render
at ./helix-term/src/ui/prompt.rs:267:9
7: hx::compositor::Compositor::render
at ./helix-term/src/compositor.rs:129:13
8: hx::application::Application::render
at ./helix-term/src/application.rs:79:9
9: hx::application::Application::handle_terminal_events
at ./helix-term/src/application.rs:138:13
10: hx::application::Application::event_loop::{{closure}}
at ./helix-term/src/application.rs:96:21
11: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
12: hx::application::Application::run::{{closure}}
at ./helix-term/src/application.rs:254:9
13: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
14: hx::main::{{closure}}
at ./helix-term/src/main.rs:116:9
15: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
16: tokio::park::thread::CachedParkThread::block_on::{{closure}}
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/park/thread.rs:263:54
17: tokio::coop::with_budget::{{closure}}
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:106:9
18: std::thread::local::LocalKey<T>::try_with
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272:16
19: std::thread::local::LocalKey<T>::with
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248:9
20: tokio::coop::with_budget
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:99:5
21: tokio::coop::budget
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/coop.rs:76:5
22: tokio::park::thread::CachedParkThread::block_on
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/park/thread.rs:263:31
23: tokio::runtime::enter::Enter::block_on
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/enter.rs:151:13
24: tokio::runtime::thread_pool::ThreadPool::block_on
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/thread_pool/mod.rs:71:9
25: tokio::runtime::Runtime::block_on
at /home/rsalminen/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.1/src/runtime/mod.rs:452:43
26: hx::main
at ./helix-term/src/main.rs:115:5
27: core::ops::function::FnOnce::call_once
at /home/rsalminen/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
commit f4560cb (HEAD -> master, origin/master, origin/HEAD)
Author: Blaž Hrastnik [email protected]
Date: Wed Jun 2 14:57:43 2021 +0900
I would like to navigate the directory, sort of like NERDTree in vim.
Is this possible?
Also is it possible to open folder?
I run:
❯ ~/Downloads/helix-v0.0.7-x86_64-linux/hx .
To open the current folder and its files. But i get:
❯ ~/Downloads/helix-v0.0.7-x86_64-linux/hx .
Error: unable to create new appliction
Caused by:
Is a directory (os error 21)
These are minimal working examples of inputs after hx
that cause a panic, tested on ubuntu and macOS.
j, b
j, w
j, e
j, f, f
d, f, f
d, f, n
i, a, esc, b, w
i, a, esc, b, e
and someone else brought up d, d
.
I tried making the calls to slice.char(_)
safe in the varioushelix-core::movement
functions, but that caused off by ones in coords_at_pos
and something in the compositor, I'm not sure if it's because of bad indexing elsewhere, or if my "fixes" aren't obeying rules about the anchor/head points for Range
. Others have also noted that it seems like you can move down one more line than you would be able to in IE kakoune, but that doesn't seem to explain the d, d
or b
cases.
Just poking around, there seems to be a lot of interaction with ropey via partial functions which may not be ideal in the long run. It's a bummer that ropey doesn't seem to offer total versions of the indexing functions.
Cool project by the way, I wish you the best of luck.
Running: cargo install --path helix-term
after: git clone --recurse-submodules --shallow-submodules -j8 https://github.com/helix-editor/helix
on an: x86 mac
with: rustc 1.47.0
Compiling jobserver v0.1.22
error[E0658]: unions with non-`Copy` fields are unstable
--> /Users/adam.zethraeus/.cargo/registry/src/github.com-1ecc6299db9ec823/slotmap-1.0.3/src/basic.rs:19:1
|
19 | / union SlotUnion<T> {
20 | | value: ManuallyDrop<T>,
21 | | next_free: u32,
22 | | }
| |_^
|
= note: see issue #55149 <https://github.com/rust-lang/rust/issues/55149> for more information
error[E0658]: unions with non-`Copy` fields are unstable
--> /Users/adam.zethraeus/.cargo/registry/src/github.com-1ecc6299db9ec823/slotmap-1.0.3/src/hop.rs:39:1
|
39 | / union SlotUnion<T> {
40 | | value: ManuallyDrop<T>,
41 | | free: FreeListEntry,
42 | | }
| |_^
|
= note: see issue #55149 <https://github.com/rust-lang/rust/issues/55149> for more information
Compiling unicode-normalization v0.1.18
Compiling quote v1.0.9
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0658`.
The following warnings were emitted during compilation
We'd like to distribute the package via a Homebrew tap on OSX.
thread 'main' panicked at 'Attempt to index past end of slice: line index 1, slice line length 1', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\ropey-1.2.0\src\slice.rs:534:9
>hx.exe
thread 'main' panicked at 'index out of bounds: the len is 1892 but the index is 1892', helix-tui\src\buffer.rs:185:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
In both Kakoune and Vim arrow keys are usually mapped to moving the cursor.
I understand this might be a design choice.
A non-elegant implementation: github.com/itzmjauz/helix
I wonder what are the project goals of helix. I have used quite a few editors, vim, neovim, vis, kakoune, doom emacs but I wonder what are the goals of this project? All of them have some stuff that I like but up till now all have their own downsides. I wonder what helix aims to achieves.
Also, since the project is new, we have the luxury to change the keymaps at the start, having used quite a few editors I think some of the keys in kakoune could be improved (some not easy to remember and some useless, like x
vs X
). Maybe we could create an RFC and discuss the alternatives and which keys to do what? By the way, I like kakoune alt, but not the limitation of terminal not being able to differentiate between ctrl-shift and ctrl, alt is similar case IIRC.
As the title says, when the file picker window is open and I split the terminal window verticaly using tmux there is a panic:
thread 'main' panicked at 'index out of bounds: the len is 3780 but the index is 3780', helix-tui/src/buffer.rs:185:14
When I first split the window and then open the file picker it correctly scales later on when the split is closed and opened again.
Seems like Helix panics when it tries to open Python files specifically, I tried both large and small files, it panicked on both, both when the file is given using the CLI and both when selected through the :open <file.py>
option.
I was able to open TOML, Rust, C, C++, txt, XML, CSV, JSON
perfectly well.
❯ hx ~/path/to/file.py
thread 'tokio-runtime-worker' panicked at 'called `Option::unwrap()` on a `None` value', helix-lsp/src/transport.rs:103:60
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', helix-lsp/src/client.rs:156:18
Reproducible in both helix-git
and helix-bin
AUR packages.
(Seems like it also panics when I try to extract the version on the helix-git
package)
❯ hx --version
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: No such file or directory (os error 2)', helix-term/src/main.rs:117:46
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Active Rust versions:
nightly-x86_64-unknown-linux-gnu (default)
rustc 1.54.0-nightly (657bc0188 2021-05-31)
I would like to see the contents of a directory when opening hx
with a path to directory like:
hx /tmp
Shows me file picker with the contents of /tmp
.
I would like to give a try at implementing this.
❯ hx ~/Programming/workon/src/main.rs
thread 'main' panicked at 'Attempt to index past end of Rope: char index 1662, Rope char length 1662', /home/niedzwiedz/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.2.0/src/rope.rs:996:9
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
that's when I try to add a new line to the end of a file
Compiling helix-lsp v0.1.0 (/Users/tzury/helix/helix-lsp)
error[E0658]: use of unstable library feature 'bool_to_option'
--> helix-lsp/src/client.rs:473:32
|
473 | text: include_text.then(|| text.into()),
| ^^^^
|
= note: see issue #64260 <https://github.com/rust-lang/rust/issues/64260> for more information
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.
error: could not compile `helix-lsp`
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `helix-term v0.1.0 (/Users/tzury/helix/helix-term)`, intermediate artifacts can be found at `/Users/tzury/helix/target`
Caused by:
build failed
my entire terminal history:
tby-mbp-m1:~ tzury$ git clone --recurse-submodules --shallow-submodules -j8 https://github.com/helix-editor/helix
Cloning into 'helix'...
remote: Enumerating objects: 5148, done.
remote: Counting objects: 100% (1526/1526), done.
remote: Compressing objects: 100% (453/453), done.
remote: Total 5148 (delta 1074), reused 1464 (delta 1038), pack-reused 3622
Receiving objects: 100% (5148/5148), 2.20 MiB | 6.25 MiB/s, done.
Resolving deltas: 100% (3573/3573), done.
Submodule 'helix-syntax/languages/tree-sitter-agda' (https://github.com/tree-sitter/tree-sitter-agda) registered for path 'helix-syntax/languages/tree-sitter-agda'
Submodule 'helix-syntax/languages/tree-sitter-bash' (https://github.com/tree-sitter/tree-sitter-bash) registered for path 'helix-syntax/languages/tree-sitter-bash'
Submodule 'helix-syntax/languages/tree-sitter-c' (https://github.com/tree-sitter/tree-sitter-c) registered for path 'helix-syntax/languages/tree-sitter-c'
Submodule 'helix-syntax/languages/tree-sitter-c-sharp' (https://github.com/tree-sitter/tree-sitter-c-sharp) registered for path 'helix-syntax/languages/tree-sitter-c-sharp'
Submodule 'helix-syntax/languages/tree-sitter-cpp' (https://github.com/tree-sitter/tree-sitter-cpp) registered for path 'helix-syntax/languages/tree-sitter-cpp'
Submodule 'helix-syntax/languages/tree-sitter-css' (https://github.com/tree-sitter/tree-sitter-css) registered for path 'helix-syntax/languages/tree-sitter-css'
Submodule 'helix-syntax/languages/tree-sitter-go' (https://github.com/tree-sitter/tree-sitter-go) registered for path 'helix-syntax/languages/tree-sitter-go'
Submodule 'helix-syntax/languages/tree-sitter-html' (https://github.com/tree-sitter/tree-sitter-html) registered for path 'helix-syntax/languages/tree-sitter-html'
Submodule 'helix-syntax/languages/tree-sitter-java' (https://github.com/tree-sitter/tree-sitter-java) registered for path 'helix-syntax/languages/tree-sitter-java'
Submodule 'helix-syntax/languages/tree-sitter-javascript' (https://github.com/tree-sitter/tree-sitter-javascript) registered for path 'helix-syntax/languages/tree-sitter-javascript'
Submodule 'helix-syntax/languages/tree-sitter-json' (https://github.com/tree-sitter/tree-sitter-json) registered for path 'helix-syntax/languages/tree-sitter-json'
Submodule 'helix-syntax/languages/tree-sitter-julia' (https://github.com/tree-sitter/tree-sitter-julia) registered for path 'helix-syntax/languages/tree-sitter-julia'
Submodule 'helix-syntax/languages/tree-sitter-php' (https://github.com/tree-sitter/tree-sitter-php) registered for path 'helix-syntax/languages/tree-sitter-php'
Submodule 'helix-syntax/languages/tree-sitter-python' (https://github.com/tree-sitter/tree-sitter-python) registered for path 'helix-syntax/languages/tree-sitter-python'
Submodule 'helix-syntax/languages/tree-sitter-ruby' (https://github.com/tree-sitter/tree-sitter-ruby) registered for path 'helix-syntax/languages/tree-sitter-ruby'
Submodule 'helix-syntax/languages/tree-sitter-rust' (https://github.com/tree-sitter/tree-sitter-rust) registered for path 'helix-syntax/languages/tree-sitter-rust'
Submodule 'helix-syntax/languages/tree-sitter-scala' (https://github.com/tree-sitter/tree-sitter-scala) registered for path 'helix-syntax/languages/tree-sitter-scala'
Submodule 'helix-syntax/languages/tree-sitter-swift' (https://github.com/tree-sitter/tree-sitter-swift) registered for path 'helix-syntax/languages/tree-sitter-swift'
Submodule 'helix-syntax/languages/tree-sitter-toml' (https://github.com/ikatyang/tree-sitter-toml) registered for path 'helix-syntax/languages/tree-sitter-toml'
Submodule 'helix-syntax/languages/tree-sitter-typescript' (https://github.com/tree-sitter/tree-sitter-typescript) registered for path 'helix-syntax/languages/tree-sitter-typescript'
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-agda'...
remote: Enumerating objects: 275, done.
remote: Counting objects: 100% (275/275), done.
remote: Compressing objects: 100% (167/167), done.
remote: Total 275 (delta 136), reused 196 (delta 84), pack-reused 0
Receiving objects: 100% (275/275), 3.02 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (136/136), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-html'...
remote: Enumerating objects: 193, done.
remote: Counting objects: 100% (193/193), done.
remote: Compressing objects: 100% (118/118), done.
remote: Total 193 (delta 93), reused 144 (delta 57), pack-reused 0
Receiving objects: 100% (193/193), 62.55 KiB | 1016.00 KiB/s, done.
Resolving deltas: 100% (93/93), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-css'...
remote: Enumerating objects: 152, done.
remote: Counting objects: 100% (152/152), done.
remote: Compressing objects: 100% (107/107), done.
remote: Total 152 (delta 74), reused 98 (delta 37), pack-reused 0
Receiving objects: 100% (152/152), 231.74 KiB | 1.19 MiB/s, done.
Resolving deltas: 100% (74/74), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash'...
remote: Enumerating objects: 441, done.
remote: Counting objects: 100% (441/441), done.
remote: Compressing objects: 100% (267/267), done.
remote: Total 441 (delta 262), reused 310 (delta 153), pack-reused 0
Receiving objects: 100% (441/441), 5.53 MiB | 3.33 MiB/s, done.
Resolving deltas: 100% (262/262), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-java'...
remote: Enumerating objects: 223, done.
remote: Counting objects: 100% (223/223), done.
remote: Compressing objects: 100% (160/160), done.
remote: Total 223 (delta 92), reused 135 (delta 36), pack-reused 0
Receiving objects: 100% (223/223), 1.33 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (92/92), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-go'...
remote: Enumerating objects: 435, done.
remote: Counting objects: 100% (435/435), done.
remote: Compressing objects: 100% (277/277), done.
remote: Total 435 (delta 241), reused 293 (delta 129), pack-reused 0
Receiving objects: 100% (435/435), 2.82 MiB | 3.43 MiB/s, done.
Resolving deltas: 100% (241/241), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-json'...
remote: Enumerating objects: 151, done.
remote: Counting objects: 100% (151/151), done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 151 (delta 65), reused 110 (delta 37), pack-reused 0
Receiving objects: 100% (151/151), 42.58 KiB | 714.00 KiB/s, done.
Resolving deltas: 100% (65/65), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-julia'...
remote: Enumerating objects: 109, done.
remote: Counting objects: 100% (109/109), done.
remote: Compressing objects: 100% (73/73), done.
remote: Total 109 (delta 47), reused 81 (delta 28), pack-reused 0
Receiving objects: 100% (109/109), 3.38 MiB | 2.88 MiB/s, done.
Resolving deltas: 100% (47/47), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-c-sharp'...
remote: Enumerating objects: 260, done.
remote: Counting objects: 100% (260/260), done.
remote: Compressing objects: 100% (186/186), done.
remote: Total 260 (delta 154), reused 126 (delta 53), pack-reused 0
Receiving objects: 100% (260/260), 3.47 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (154/154), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-c'...
remote: Enumerating objects: 633, done.
remote: Counting objects: 100% (633/633), done.
remote: Compressing objects: 100% (381/381), done.
remote: Total 633 (delta 377), reused 454 (delta 220), pack-reused 0
Receiving objects: 100% (633/633), 6.23 MiB | 4.41 MiB/s, done.
Resolving deltas: 100% (377/377), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-rust'...
remote: Enumerating objects: 405, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (233/233), done.
remote: Total 405 (delta 238), reused 298 (delta 149), pack-reused 0
Receiving objects: 100% (405/405), 7.53 MiB | 4.04 MiB/s, done.
Resolving deltas: 100% (238/238), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-swift'...
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 28 (delta 0), reused 9 (delta 0), pack-reused 0
Receiving objects: 100% (28/28), 83.68 KiB | 865.00 KiB/s, done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-scala'...
remote: Enumerating objects: 98, done.
remote: Counting objects: 100% (98/98), done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 98 (delta 39), reused 59 (delta 17), pack-reused 0
Receiving objects: 100% (98/98), 577.84 KiB | 2.41 MiB/s, done.
Resolving deltas: 100% (39/39), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-toml'...
remote: Enumerating objects: 220, done.
remote: Counting objects: 100% (220/220), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 220 (delta 103), reused 156 (delta 58), pack-reused 0
Receiving objects: 100% (220/220), 365.59 KiB | 1.98 MiB/s, done.
Resolving deltas: 100% (103/103), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-python'...
remote: Enumerating objects: 449, done.
remote: Counting objects: 100% (449/449), done.
remote: Compressing objects: 100% (303/303), done.
remote: Total 449 (delta 247), reused 283 (delta 114), pack-reused 0
Receiving objects: 100% (449/449), 3.52 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (247/247), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-cpp'...
remote: Enumerating objects: 466, done.
remote: Counting objects: 100% (466/466), done.
remote: Compressing objects: 100% (282/282), done.
remote: Total 466 (delta 270), reused 358 (delta 176), pack-reused 0
Receiving objects: 100% (466/466), 13.65 MiB | 3.03 MiB/s, done.
Resolving deltas: 100% (270/270), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-javascript'...
remote: Enumerating objects: 759, done.
remote: Counting objects: 100% (759/759), done.
remote: Compressing objects: 100% (499/499), done.
remote: Total 759 (delta 450), reused 476 (delta 219), pack-reused 0
Receiving objects: 100% (759/759), 9.91 MiB | 1.95 MiB/s, done.
Resolving deltas: 100% (450/450), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-php'...
remote: Enumerating objects: 1800, done.
remote: Counting objects: 100% (1800/1800), done.
remote: Compressing objects: 100% (1051/1051), done.
remote: Total 1800 (delta 1065), reused 1008 (delta 734), pack-reused 0
Receiving objects: 100% (1800/1800), 15.17 MiB | 1.24 MiB/s, done.
Resolving deltas: 100% (1065/1065), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-ruby'...
remote: Enumerating objects: 514, done.
remote: Counting objects: 100% (514/514), done.
remote: Compressing objects: 100% (334/334), done.
remote: Total 514 (delta 287), reused 327 (delta 152), pack-reused 0
Receiving objects: 100% (514/514), 54.67 MiB | 1.44 MiB/s, done.
Resolving deltas: 100% (287/287), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-typescript'...
remote: Enumerating objects: 648, done.
remote: Counting objects: 100% (648/648), done.
remote: Compressing objects: 100% (416/416), done.
remote: Total 648 (delta 373), reused 424 (delta 197), pack-reused 0
Receiving objects: 100% (648/648), 20.89 MiB | 2.29 MiB/s, done.
Resolving deltas: 100% (373/373), done.
Submodule path 'helix-syntax/languages/tree-sitter-agda': checked out 'ca69cdf485e9ce2b2ef0991a720aa88d87d30231'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 300 bytes | 75.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-bash
* branch a8eb5cb57c66f74c63ab950de081207cccf52017 -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-bash': checked out 'a8eb5cb57c66f74c63ab950de081207cccf52017'
Submodule 'examples/bash-it' (https://github.com/Bash-it/bash-it.git) registered for path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it'
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash/examples/bash-it'...
remote: Enumerating objects: 1039, done.
remote: Counting objects: 100% (1039/1039), done.
remote: Compressing objects: 100% (725/725), done.
remote: Total 1039 (delta 278), reused 768 (delta 165), pack-reused 0
Receiving objects: 100% (1039/1039), 7.27 MiB | 15.08 MiB/s, done.
Resolving deltas: 100% (278/278), done.
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 1048, done.
remote: Counting objects: 100% (406/406), done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 152 (delta 72), reused 57 (delta 3), pack-reused 0
Receiving objects: 100% (152/152), 79.79 KiB | 6.65 MiB/s, done.
Resolving deltas: 100% (72/72), completed with 65 local objects.
From https://github.com/Bash-it/bash-it
* branch c3d9c46ef832f808c929a22b36c8ef6dd45cb98a -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it': checked out 'c3d9c46ef832f808c929a22b36c8ef6dd45cb98a'
Submodule 'test_lib/bats-assert' (https://github.com/ztombol/bats-assert) registered for path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-assert'
Submodule 'test_lib/bats-core' (https://github.com/bats-core/bats-core) registered for path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-core'
Submodule 'test_lib/bats-file' (https://github.com/ztombol/bats-file) registered for path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-file'
Submodule 'test_lib/bats-support' (https://github.com/ztombol/bats-support) registered for path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-support'
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-assert'...
remote: Enumerating objects: 48, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 48 (delta 20), reused 27 (delta 8), pack-reused 0
Receiving objects: 100% (48/48), 19.94 KiB | 111.00 KiB/s, done.
Resolving deltas: 100% (20/20), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-support'...
remote: Enumerating objects: 49, done.
remote: Counting objects: 100% (49/49), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 49 (delta 12), reused 43 (delta 11), pack-reused 0
Receiving objects: 100% (49/49), 18.11 KiB | 6.04 MiB/s, done.
Resolving deltas: 100% (12/12), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-file'...
remote: Enumerating objects: 48, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 48 (delta 10), reused 46 (delta 10), pack-reused 0
Receiving objects: 100% (48/48), 15.74 KiB | 88.00 KiB/s, done.
Resolving deltas: 100% (10/10), done.
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-core'...
remote: Enumerating objects: 739, done.
remote: Counting objects: 100% (739/739), done.
remote: Compressing objects: 100% (502/502), done.
remote: Total 739 (delta 320), reused 505 (delta 158), pack-reused 0
Receiving objects: 100% (739/739), 253.16 KiB | 1.36 MiB/s, done.
Resolving deltas: 100% (320/320), done.
Submodule path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-assert': checked out '9f88b4207da750093baabc4e3f41bf68f0dd3630'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 84, done.
remote: Counting objects: 100% (75/75), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 11 (delta 6), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (11/11), 3.64 KiB | 286.00 KiB/s, done.
From https://github.com/bats-core/bats-core
* branch 85388685632f85d5a1c32e6bca2deec401964cf7 -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-core': checked out '85388685632f85d5a1c32e6bca2deec401964cf7'
Submodule path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-file': checked out '2fddb2b831d65cdf2e411f3b47f4677fbb15729c'
Submodule path 'helix-syntax/languages/tree-sitter-bash/examples/bash-it/test_lib/bats-support': checked out '004e707638eedd62e0481e8cdc9223ad471f12ee'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 2 (delta 1), reused 1 (delta 1), pack-reused 0
Unpacking objects: 100% (2/2), 649 bytes | 162.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-c
* branch f05e279aedde06a25801c3f2b2cc8ac17fac52ae -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-c': checked out 'f05e279aedde06a25801c3f2b2cc8ac17fac52ae'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 67, done.
remote: Counting objects: 100% (62/62), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 6), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), 91.75 KiB | 306.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-c-sharp
* branch 53a65a908167d6556e1fcdb67f1ee62aac101dda -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-c-sharp': checked out '53a65a908167d6556e1fcdb67f1ee62aac101dda'
Submodule path 'helix-syntax/languages/tree-sitter-cpp': checked out 'c61212414a3e95b5f7507f98e83de1d638044adc'
Submodule path 'helix-syntax/languages/tree-sitter-css': checked out '94e10230939e702b4fa3fa2cb5c3bc7173b95d07'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 659 bytes | 164.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-go
* branch 2a83dfdd759a632651f852aa4dc0af2525fae5cd -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-go': checked out '2a83dfdd759a632651f852aa4dc0af2525fae5cd'
Submodule path 'helix-syntax/languages/tree-sitter-html': checked out 'd93af487cc75120c89257195e6be46c999c6ba18'
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 568 bytes | 568.00 KiB/s, done.
remote: Enumerating objects: 79, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 6), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 11.38 KiB | 224.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-java
* branch bd6186c24d5eb13b4623efac9d944dcc095c0dad -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-java': checked out 'bd6186c24d5eb13b4623efac9d944dcc095c0dad'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 75, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 9 (delta 6), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 57.17 KiB | 1.12 MiB/s, done.
From https://github.com/tree-sitter/tree-sitter-javascript
* branch 4a95461c4761c624f2263725aca79eeaefd36cad -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-javascript': checked out '4a95461c4761c624f2263725aca79eeaefd36cad'
Submodule path 'helix-syntax/languages/tree-sitter-json': checked out '65bceef69c3b0f24c0b19ce67d79f57c96e90fcb'
Submodule path 'helix-syntax/languages/tree-sitter-julia': checked out '0ba7a24b062b671263ae08e707e9e94383b25bb7'
remote: Enumerating objects: 126, done.
remote: Counting objects: 100% (114/114), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 16 (delta 13), reused 8 (delta 5), pack-reused 0
Unpacking objects: 100% (16/16), 1.03 MiB | 1.94 MiB/s, done.
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (87/87), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 17 (delta 11), reused 5 (delta 2), pack-reused 0
Unpacking objects: 100% (17/17), 81.15 KiB | 1.27 MiB/s, done.
From https://github.com/tree-sitter/tree-sitter-php
* branch 0d63eaf94e8d6c0694551b016c802787e61b3fb2 -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-php': checked out '0d63eaf94e8d6c0694551b016c802787e61b3fb2'
Submodule path 'helix-syntax/languages/tree-sitter-python': checked out 'd6210ceab11e8d812d4ab59c07c81458ec6e5184'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 295 bytes | 295.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-ruby
* branch dfff673b41df7fadcbb609c6338f38da3cdd018e -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-ruby': checked out 'dfff673b41df7fadcbb609c6338f38da3cdd018e'
Submodule path 'helix-syntax/languages/tree-sitter-rust': checked out 'a360da0a29a19c281d08295a35ecd0544d2da211'
Submodule path 'helix-syntax/languages/tree-sitter-scala': checked out 'fb23ed9a99da012d86b7a5059b9d8928607cce29'
Submodule path 'helix-syntax/languages/tree-sitter-swift': checked out 'a22fa5e19bae50098e2252ea96cba3aba43f4c58'
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 991 bytes | 330.00 KiB/s, done.
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 971 bytes | 323.00 KiB/s, done.
From https://github.com/ikatyang/tree-sitter-toml
* branch 7cff70bbcbbc62001b465603ca1ea88edd668704 -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-toml': checked out '7cff70bbcbbc62001b465603ca1ea88edd668704'
Submodule 'tree-sitter' (https://github.com/ikatyang/tree-sitter) registered for path 'helix-syntax/languages/tree-sitter-toml/tree-sitter'
Cloning into '/Users/tzury/helix/helix-syntax/languages/tree-sitter-toml/tree-sitter'...
remote: Enumerating objects: 2486, done.
remote: Counting objects: 100% (2486/2486), done.
remote: Compressing objects: 100% (1439/1439), done.
remote: Total 2486 (delta 1618), reused 1585 (delta 962), pack-reused 0
Receiving objects: 100% (2486/2486), 3.41 MiB | 9.79 MiB/s, done.
Resolving deltas: 100% (1618/1618), done.
Submodule path 'helix-syntax/languages/tree-sitter-toml/tree-sitter': checked out 'fc5a692b7d5f144cc531f5823b1c5a3b2f06cf01'
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 68, done.
remote: Counting objects: 100% (58/58), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 7), reused 2 (delta 1), pack-reused 0
Unpacking objects: 100% (8/8), 832 bytes | 43.00 KiB/s, done.
From https://github.com/tree-sitter/tree-sitter-typescript
* branch 3e897ea5925f037cfae2e551f8e6b12eec2a201a -> FETCH_HEAD
Submodule path 'helix-syntax/languages/tree-sitter-typescript': checked out '3e897ea5925f037cfae2e551f8e6b12eec2a201a'
tby-mbp-m1:~ tzury$ cd helix
tby-mbp-m1:helix tzury$ cargo install --path helix-term
Installing helix-term v0.1.0 (/Users/tzury/helix/helix-term)
Updating crates.io index
Updating git repository `https://github.com/paritytech/jsonrpc`
Downloaded itoa v0.4.7
Downloaded once_cell v1.7.2
Downloaded serde_derive v1.0.126
Downloaded pico-args v0.4.1
Downloaded chrono v0.4.19
Downloaded serde v1.0.126
Downloaded syn v1.0.72
Downloaded ropey v1.2.0
Downloaded scopeguard v1.1.0
Downloaded futures-task v0.3.15
Downloaded tinyvec v1.2.0
Downloaded tree-sitter v0.19.5
Downloaded cassowary v0.3.0
Downloaded unicode-bidi v0.3.5
Downloaded tokio-stream v0.1.6
Downloaded unicode-width v0.1.8
Downloaded version_check v0.9.3
Downloaded parking_lot v0.11.1
Downloaded tokio-macros v1.2.0
Downloaded pin-utils v0.1.0
Downloaded signal-hook-registry v1.4.0
Downloaded log v0.4.14
Downloaded walkdir v2.3.2
Downloaded num_cpus v1.13.0
Downloaded globset v0.4.6
Downloaded quote v1.0.9
Downloaded url v2.2.2
Downloaded unicode-normalization v0.1.18
Downloaded threadpool v1.8.1
Downloaded thiserror-impl v1.0.25
Downloaded cc v1.0.68
Downloaded pathdiff v0.2.0
Downloaded fuzzy-matcher v0.3.7
Downloaded serde_repr v0.1.7
Downloaded slotmap v1.0.3
Downloaded libc v0.2.95
Downloaded fern v0.6.0
Downloaded fnv v1.0.7
Downloaded idna v0.2.3
Downloaded crossterm v0.19.0
Downloaded mac v0.1.1
Downloaded futures-executor v0.3.15
Downloaded unicode-xid v0.2.2
Downloaded unicase v2.6.0
Downloaded utf-8 v0.7.6
Downloaded tokio v1.6.1
Downloaded serde_json v1.0.64
Downloaded ryu v1.0.5
Downloaded mio v0.7.11
Downloaded parking_lot_core v0.8.3
Downloaded futf v0.1.4
Downloaded same-file v1.0.6
Downloaded aho-corasick v0.7.18
Downloaded bytes v1.0.1
Downloaded bstr v0.2.16
Downloaded autocfg v1.0.1
Downloaded matches v0.1.8
Downloaded lsp-types v0.89.1
Downloaded unicode-segmentation v1.7.1
Downloaded thread_local v1.1.3
Downloaded percent-encoding v2.1.0
Downloaded num-traits v0.2.14
Downloaded lazy_static v1.4.0
Downloaded glob v0.3.0
Downloaded bitflags v1.2.1
Downloaded lock_api v0.4.4
Downloaded jobserver v0.1.22
Downloaded etcetera v0.3.2
Downloaded dirs-next v2.0.0
Downloaded cfg-if v1.0.0
Downloaded num-integer v0.1.44
Downloaded new_debug_unreachable v1.0.4
Downloaded crossbeam-utils v0.8.5
Downloaded thiserror v1.0.25
Downloaded slab v0.4.3
Downloaded pin-project-lite v0.2.6
Downloaded instant v0.1.9
Downloaded toml v0.5.8
Downloaded tinyvec_macros v0.1.0
Downloaded tendril v0.4.2
Downloaded ignore v0.4.17
Downloaded futures-core v0.3.15
Downloaded signal-hook v0.1.17
Downloaded proc-macro2 v1.0.27
Downloaded memchr v2.4.0
Downloaded form_urlencoded v1.0.1
Downloaded anyhow v1.0.40
Downloaded regex v1.5.4
Downloaded smallvec v1.6.1
Downloaded pulldown-cmark v0.8.0
Downloaded futures-util v0.3.15
Downloaded dirs-sys-next v0.1.2
Downloaded regex-syntax v0.6.25
Downloaded 93 crates (6.0 MB) in 1.34s
Compiling libc v0.2.95
Compiling proc-macro2 v1.0.27
Compiling unicode-xid v0.2.2
Compiling syn v1.0.72
Compiling cfg-if v1.0.0
Compiling autocfg v1.0.1
Compiling memchr v2.4.0
Compiling log v0.4.14
Compiling serde_derive v1.0.126
Compiling serde v1.0.126
Compiling futures-core v0.3.15
Compiling smallvec v1.6.1
Compiling version_check v0.9.3
Compiling once_cell v1.7.2
Compiling scopeguard v1.1.0
Compiling bitflags v1.2.1
Compiling regex-syntax v0.6.25
Compiling futures-task v0.3.15
Compiling matches v0.1.8
Compiling pin-project-lite v0.2.6
Compiling ryu v1.0.5
Compiling tinyvec_macros v0.1.0
Compiling serde_json v1.0.64
Compiling mac v0.1.1
Compiling pin-utils v0.1.0
Compiling new_debug_unreachable v1.0.4
Compiling slab v0.4.3
Compiling percent-encoding v2.1.0
Compiling itoa v0.4.7
Compiling lazy_static v1.4.0
Compiling utf-8 v0.7.6
Compiling anyhow v1.0.40
Compiling unicode-width v0.1.8
Compiling bytes v1.0.1
Compiling unicode-segmentation v1.7.1
Compiling crossbeam-utils v0.8.5
Compiling fnv v1.0.7
Compiling same-file v1.0.6
Compiling pathdiff v0.2.0
Compiling cassowary v0.3.0
Compiling pulldown-cmark v0.8.0
Compiling glob v0.3.0
Compiling pico-args v0.4.1
Compiling instant v0.1.9
Compiling futures-util v0.3.15
Compiling tokio v1.6.1
Compiling num-traits v0.2.14
Compiling num-integer v0.1.44
Compiling unicode-bidi v0.3.5
Compiling lock_api v0.4.4
Compiling thread_local v1.1.3
Compiling ropey v1.2.0
Compiling tinyvec v1.2.0
Compiling futf v0.1.4
Compiling slotmap v1.0.3
Compiling unicase v2.6.0
Compiling form_urlencoded v1.0.1
Compiling walkdir v2.3.2
Compiling fuzzy-matcher v0.3.7
Compiling tendril v0.4.2
Compiling unicode-normalization v0.1.18
Compiling fern v0.6.0
Compiling aho-corasick v0.7.18
Compiling bstr v0.2.16
Compiling jobserver v0.1.22
Compiling num_cpus v1.13.0
Compiling parking_lot_core v0.8.3
Compiling signal-hook-registry v1.4.0
Compiling mio v0.7.11
Compiling dirs-sys-next v0.1.2
Compiling quote v1.0.9
Compiling idna v0.2.3
Compiling regex v1.5.4
Compiling cc v1.0.68
Compiling threadpool v1.8.1
Compiling parking_lot v0.11.1
Compiling dirs-next v2.0.0
Compiling signal-hook v0.1.17
Compiling globset v0.4.6
Compiling futures-executor v0.3.15
Compiling chrono v0.4.19
Compiling tree-sitter v0.19.5
Compiling helix-syntax v0.1.0 (/Users/tzury/helix/helix-syntax)
Compiling crossterm v0.19.0
Compiling ignore v0.4.17
Compiling helix-tui v0.1.0 (/Users/tzury/helix/helix-tui)
Compiling thiserror-impl v1.0.25
Compiling tokio-macros v1.2.0
Compiling serde_repr v0.1.7
Compiling thiserror v1.0.25
Compiling etcetera v0.3.2
Compiling tokio-stream v0.1.6
Compiling toml v0.5.8
Compiling url v2.2.2
Compiling jsonrpc-core v17.1.0 (https://github.com/paritytech/jsonrpc#609d7a6c)
Compiling lsp-types v0.89.1
Compiling helix-core v0.1.0 (/Users/tzury/helix/helix-core)
Compiling helix-lsp v0.1.0 (/Users/tzury/helix/helix-lsp)
error[E0658]: use of unstable library feature 'bool_to_option'
--> helix-lsp/src/client.rs:473:32
|
473 | text: include_text.then(|| text.into()),
| ^^^^
|
= note: see issue #64260 <https://github.com/rust-lang/rust/issues/64260> for more information
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.
error: could not compile `helix-lsp`
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `helix-term v0.1.0 (/Users/tzury/helix/helix-term)`, intermediate artifacts can be found at `/Users/tzury/helix/target`
Caused by:
build failed
When searching using /
, going to the next match using n
stops working when you've passed the character ⽆
.
Environment
Steps to reproduce
Given the following file:
test:
key
⽆
key
key
test:
. Search for key
using /key
n
for next matchn
for next match (does not work)thread 'main' panicked at 'Attempt to slice past end of RopeSlice: slice end 1, RopeSlice length 0', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.2.0/src/slice.rs:784:9
To reproduce:
Press dd
on an empty file
(dupe of #16)
Helix still panics when the overall terminal size is too small, I haven't pinned down the exact width to trigger it to panic, but I'm sure someone will figure it out soon enough.
error: builder for '/nix/store/1cxlj18q2vjj09p2dyjk862ssvsp3xwr-rust-workspace-deps-unknown.drv' failed with exit code 101;
last 10 log lines:
> failed to clone into: /build/dummy-src/.cargo-home/git/db/jsonrpc-22a65938f7d26b63
>
> Caused by:
> network failure seems to have happened
> if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
> https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
>
> Caused by:
> failed to resolve address for github.com: Name or service not known; class=Net (12)
> [naersk] cargo returned with exit code 101, exiting
For full logs, run 'nix log /nix/store/1cxlj18q2vjj09p2dyjk862ssvsp3xwr-rust-workspace-deps-unknown.drv'.
error: 1 dependencies of derivation '/nix/store/54mlyvashp47rlqysdr1b6b1vqskmv2p-rust-workspace-unknown.drv' failed to build
Consider using this instead: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/rust.section.md#importing-a-cargolock-file
Environment
thread 'main' panicked at 'Attempt to index past end of Rope: char index 0, Rope char length 0', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.2.0/src/rope.rs:996:9
stack backtrace:
0: 0x1007cfb44 - __mh_execute_header
1: 0x1007edc8e - __mh_execute_header
2: 0x1007cb956 - __mh_execute_header
3: 0x1007d1ce9 - __mh_execute_header
4: 0x1007d17d0 - __mh_execute_header
5: 0x1003773fd - __mh_execute_header
6: 0x1007d2378 - __mh_execute_header
7: 0x1007d1e95 - __mh_execute_header
8: 0x1007cffa8 - __mh_execute_header
9: 0x1007d1dfa - __mh_execute_header
10: 0x100810c8b - __mh_execute_header
11: 0x1003bc489 - __mh_execute_header
12: 0x1003b9388 - __mh_execute_header
13: 0x100390760 - __mh_execute_header
14: 0x1003bf13a - __mh_execute_header
15: 0x1003b44c2 - __mh_execute_header
16: 0x100375c7d - __mh_execute_header
17: 0x1003aea41 - __mh_execute_header
18: 0x100328b3f - __mh_execute_header
19: 0x10034cf3d - __mh_execute_header
20: 0x1003c924a - __mh_execute_header
21: 0x1003c9271 - __mh_execute_header
22: 0x1007d26c4 - __mh_execute_header
23: 0x10034d069 - __mh_execute_header
Steps to reproduce
%
.d
.Present-working-directory of shell is located at $HOME/Downloads/helix-editor/helix
$ RUST_BACKTRACE=1 hx
:open ../../
(Panic occurs when second slash is typed)thread 'main' panicked at 'index out of bounds: the len is 10070 but the index is 61356', helix-tui/src/buffer.rs:185:14
stack backtrace:
0: rust_begin_unwind
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
1: core::panicking::panic_fmt
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:92:14
2: core::panicking::panic_bounds_check
at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:69:5
3: helix_tui::buffer::Buffer::clear_with
4: <hx::ui::prompt::Prompt as hx::compositor::Component>::render
5: hx::compositor::Compositor::render
6: hx::main::{{closure}}
7: tokio::runtime::enter::Enter::block_on
8: tokio::runtime::Runtime::block_on
9: hx::main
note: Some details are omitted, run with RUST_BACKTRACE=full
for a verbose backtrace.
Ubuntu 20.04.2 LTS
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.