Code Monkey home page Code Monkey logo

neovide's Introduction

Neovide

Discord Chat on Matrix Discussions

This is a simple graphical user interface for Neovim (an aggressively refactored and updated Vim editor). Where possible there are some graphical improvements, but functionally it should act like the terminal UI.

To checkout all the cool features, installation instructions, configuration settings and much more, head on over to neovide.dev.


Screenshot of Neovide Screenshot of Neovide running on Windows

Author Notes

I've been using this as my daily driver since November 2019. It should be relatively stable, but I'm still working out some kinks and ironing out some cross platform issues. In general it should be usable at this point, and if it isn't I consider that a bug and appreciate a report in the issues! Any help and ideas are also greatly appreciated.

I'm also very interested in suggestions code quality/style wise when it comes to Rust. I'm pretty new to the language and appreciate any critiques that you might have to offer. I won't take all of them, but I promise to consider anything you might have to offer.

License

Licensed under MIT.

neovide's People

Contributors

agraven avatar benjamin-davies avatar chomosuke avatar crupest avatar dineshkumar777 avatar exoticus avatar falcucci avatar fredizzimo avatar j4qfrost avatar jonvaldes avatar jsosulski avatar keithsim-msft avatar kethku avatar khjorth avatar killthemule avatar last-partizan avatar loipesmas avatar multisamplednight avatar nganhkhoa avatar p00f avatar pawlowskialex avatar pushqrdx avatar rahuliyer95 avatar rmichelsen avatar sergioribera avatar shaunsingh avatar sid-6581 avatar smolck avatar ttytm avatar twistoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neovide's Issues

Postscript error on linux

When I try to run neovide on Ubuntu 19.10 I get the following error: Failed to load by postscript name: NotFound. Then it exits without opening any GUI window.

Running with a stack trance gives this:

Bridge created.
thread 'main' panicked at 'Failed to load by postscript name: NotFound', src/libcore/result.rs:1165:5
stack backtrace:
   0:     0x556b46ccd234 - backtrace::backtrace::libunwind::trace::h65597d255cb1398b
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x556b46ccd234 - backtrace::backtrace::trace_unsynchronized::hd4f479d7150ec4a0
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x556b46ccd234 - std::sys_common::backtrace::_print_fmt::h015072984a2b172c
                               at src/libstd/sys_common/backtrace.rs:77
   3:     0x556b46ccd234 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6df05d3335f32194
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0x556b46cf3f5c - core::fmt::write::h1f444f4312eb6c27
                               at src/libcore/fmt/mod.rs:1028
   5:     0x556b46cca117 - std::io::Write::write_fmt::h8d147888220078ef
                               at src/libstd/io/mod.rs:1412
   6:     0x556b46ccf78e - std::sys_common::backtrace::_print::h8a6df0fa81d6af62
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0x556b46ccf78e - std::sys_common::backtrace::print::h6f05b4733407e509
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0x556b46ccf78e - std::panicking::default_hook::{{closure}}::h0d0a23bd02315dd8
                               at src/libstd/panicking.rs:188
   9:     0x556b46ccf481 - std::panicking::default_hook::h8d15a9aecb4efac6
                               at src/libstd/panicking.rs:205
  10:     0x556b46ccfe8b - std::panicking::rust_panic_with_hook::hbe174577402a475d
                               at src/libstd/panicking.rs:464
  11:     0x556b46ccfa2e - std::panicking::continue_panic_fmt::h4d855dad868accf3
                               at src/libstd/panicking.rs:373
  12:     0x556b46ccf916 - rust_begin_unwind
                               at src/libstd/panicking.rs:302
  13:     0x556b46cf010e - core::panicking::panic_fmt::hdeb7979ab6591473
                               at src/libcore/panicking.rs:139
  14:     0x556b46cf0207 - core::result::unwrap_failed::h054dd680e6fcd38b
                               at src/libcore/result.rs:1165
  15:     0x556b4667f7aa - core::result::Result<T,E>::expect::h01b8e57bab9f4133
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/result.rs:960
  16:     0x556b4667f7aa - neovide::renderer::caching_shaper::build_fonts::h45fbccc53fec517a
                               at src/renderer/caching_shaper.rs:58
  17:     0x556b4667fa8d - neovide::renderer::caching_shaper::CachingShaper::get_font_pair::hf326ad3b3c69b2f2
                               at src/renderer/caching_shaper.rs:90
  18:     0x556b4668080f - neovide::renderer::caching_shaper::CachingShaper::font_base_dimensions::hc7641d10485269d5
                               at src/renderer/caching_shaper.rs:167
  19:     0x556b466574ea - neovide::renderer::Renderer::new::h57f68f749c521d19
                               at src/renderer/mod.rs:32
  20:     0x556b466419a1 - neovide::window::ui_loop::h4547e1e94563b4bf
                               at src/window.rs:32
  21:     0x556b46636ce3 - std::rt::lang_start::{{closure}}::h66753dada51e6faa
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  22:     0x556b46ccf8b3 - std::rt::lang_start_internal::{{closure}}::h6ea535ec5c50fc3e
                               at src/libstd/rt.rs:48
  23:     0x556b46ccf8b3 - std::panicking::try::do_call::h631c6408dfccc6f5
                               at src/libstd/panicking.rs:287
  24:     0x556b46cd802a - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:78
  25:     0x556b46cd042d - std::panicking::try::hab539b2d1255d635
                               at src/libstd/panicking.rs:265
  26:     0x556b46cd042d - std::panic::catch_unwind::hd5e0a26424bd7f34
                               at src/libstd/panic.rs:396
  27:     0x556b46cd042d - std::rt::lang_start_internal::h3bdc4c7d98181bf9
                               at src/libstd/rt.rs:47
  28:     0x556b466099e8 - main
  29:     0x7f8d2e3cbb6b - __libc_start_main
  30:     0x556b465ede8a - _start
  31:                0x0 - <unknown>

provide instructions for mac to build

Currently I'm using brew cask install apenngrace/vulkan/vulkan-sdk and it runs properly.

log
UI thread spawned
thread 'main' panicked at 'Failed to create renderer: CreateInstanceError(LoadingError(LibraryLoadError("dlopen(libvulkan.dylib, 1): image not found")))', src/libcore/result.rs:1188:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:84
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:61
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1025
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1426
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:65
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:50
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:193
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:210
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:471
  11: rust_begin_unwind
             at src/libstd/panicking.rs:375
  12: core::panicking::panic_fmt
             at src/libcore/panicking.rs:84
  13: core::result::unwrap_failed
             at src/libcore/result.rs:1188
  14: core::result::Result<T,E>::expect
             at /rustc/99b89533d4cdf7682ea4054ad0ee36c351d05df1/src/libcore/result.rs:983
  15: neovide::window::ui_loop
             at src/window.rs:42
  16: neovide::main
             at src/main.rs:91
  17: std::rt::lang_start::{{closure}}
             at /rustc/99b89533d4cdf7682ea4054ad0ee36c351d05df1/src/libstd/rt.rs:67
  18: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:52
  19: std::panicking::try::do_call
             at src/libstd/panicking.rs:292
  20: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:78
  21: std::panicking::try
             at src/libstd/panicking.rs:270
  22: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  23: std::rt::lang_start_internal
             at src/libstd/rt.rs:51
  24: std::rt::lang_start
             at /rustc/99b89533d4cdf7682ea4054ad0ee36c351d05df1/src/libstd/rt.rs:67
  25: neovide::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

crashing when vimrc is bad

log
UI thread spawned
Ignored style attribute: "standout"
thread 'main' panicked at 'Resize failed: GenericError("Wait timeout (nvim_ui_try_resize)")', src\libcore\result.rs:1165:5
stack backtrace:
   0: backtrace::backtrace::trace_unsynchronized
             at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.40\src\backtrace\mod.rs:66
   1: std::sys_common::backtrace::_print_fmt
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:77
   2: std::sys_common::backtrace::_print::{{impl}}::fmt
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:61
   3: core::fmt::write
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\fmt\mod.rs:1028
   4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\io\mod.rs:1412
   5: std::sys_common::backtrace::_print
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:65
   6: std::sys_common::backtrace::print
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:50
   7: std::panicking::default_hook::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:188
   8: std::panicking::default_hook
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:205
   9: std::panicking::rust_panic_with_hook
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:464
  10: std::panicking::continue_panic_fmt
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:373
  11: std::panicking::rust_begin_panic
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:302
  12: core::panicking::panic_fmt
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\panicking.rs:139
  13: core::result::unwrap_failed
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\result.rs:1165
  14: core::result::Result<(), neovim_lib::neovim::CallError>::expect<(),neovim_lib::neovim::CallError>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libcore\result.rs:960
  15: neovide::window::handle_new_grid_size
             at .\src\window.rs:21
  16: neovide::window::ui_loop::{{closure}}
             at .\src\window.rs:78
  17: winit::platform_impl::platform::event_loop::{{impl}}::run_return::{{closure}}<(),closure-0>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:211
  18: alloc::boxed::{{impl}}::call_mut<(winit::event::Event<()>, mut winit::event_loop::ControlFlow*),FnMut<(winit::event::Event<()>, mut winit::event_loop::ControlFlow*)>>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\liballoc\boxed.rs:949
  19: winit::platform_impl::platform::event_loop::runner::{{impl}}::call_event_handler::{{closure}}<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop\runner.rs:403
  20: std::panic::{{impl}}::call_once<(),closure-0>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\panic.rs:317
  21: std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,()>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\panicking.rs:287
  22: panic_unwind::__rust_maybe_catch_panic
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libpanic_unwind\lib.rs:78
  23: std::panicking::try<(),std::panic::AssertUnwindSafe<closure-0>>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\panicking.rs:265
  24: std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,()>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\panic.rs:396
  25: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::call_event_handler<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop\runner.rs:401
  26: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::process_event<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop\runner.rs:324
  27: winit::platform_impl::platform::event_loop::runner::ELRShared<()>::send_event<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop\runner.rs:72
  28: winit::platform_impl::platform::event_loop::SubclassInput<()>::send_event<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:108
  29: winit::platform_impl::platform::event_loop::public_window_callback<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:753
  30: DefSubclassProc
  31: DefSubclassProc
  32: CallWindowProcW
  33: CallWindowProcW
  34: glPushClientAttrib
  35: CallWindowProcW
  36: SendMessageW
  37: GetWindowTextW
  38: MapWindowPoints
  39: IsCompositionActive
  40: IsCompositionActive
  41: GetWindowTextW
  42: CallWindowProcW
  43: CallWindowProcW
  44: DefSubclassProc
  45: DefSubclassProc
  46: winit::platform_impl::platform::event_loop::public_window_callback<()>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:726
  47: DefSubclassProc
  48: DefSubclassProc
  49: CallWindowProcW
  50: CallWindowProcW
  51: glPushClientAttrib
  52: CallWindowProcW
  53: DispatchMessageW
  54: MBToWCSEx
  55: KiUserCallbackDispatcher
  56: NtUserPeekMessage
  57: PeekMessageW
  58: PeekMessageW
  59: winit::platform_impl::platform::event_loop::EventLoop<()>::run_return<(),closure-0>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:225
  60: winit::platform_impl::platform::event_loop::EventLoop<()>::run<(),closure-0>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\platform_impl\windows\event_loop.rs:196
  61: winit::event_loop::EventLoop<()>::run<(),closure-0>
             at C:\Users\prshrest\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha6\src\event_loop.rs:148
  62: neovide::window::ui_loop
             at .\src\window.rs:62
  63: neovide::main
             at .\src\main.rs:91
  64: std::rt::lang_start::{{closure}}<()>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\rt.rs:61
  65: std::rt::lang_start_internal::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\rt.rs:48
  66: std::panicking::try::do_call<closure-0,i32>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:287
  67: panic_unwind::__rust_maybe_catch_panic
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libpanic_unwind\lib.rs:78
  68: std::panicking::try
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:265
  69: std::panic::catch_unwind
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panic.rs:396
  70: std::rt::lang_start_internal
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\rt.rs:47
  71: std::rt::lang_start<()>
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\rt.rs:61
  72: main
  73: invoke_main
             at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  74: __scrt_common_main_seh
             at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  75: BaseThreadInitThunk
  76: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\debug\neovide.exe` (exit code: 101)

Panic at 'Could not parse event from neovim'

guifont seems to get picked up correctly now, but I get a new panic:

thread 'tokio-runtime-worker' panicked at 'Could not parse event: Could not parse event from neovim: invalid u64 format -1', src/error_handling.rs:5:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:77
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:61
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1028
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:65
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:50
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:188
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:205
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:464
  11: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:373
  12: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:328
  13: neovide::error_handling::show_error
             at src/error_handling.rs:5
  14: <core::result::Result<T,E> as neovide::error_handling::ResultPanicExplanation<T,E>>::unwrap_or_explained_panic
             at src/error_handling.rs:21
  15: <neovide::bridge::handler::NeovimHandler as nvim_rs::rpc::handler::Handler>::handle_notify::__handle_notify::{{closure}}
             at src/bridge/handler.rs:46
  16: <std::future::GenFuture<T> as core::future::future::Future>::poll::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
  17: std::future::set_task_context
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:79
  18: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
  19: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/future/future.rs:119
  20: std::future::poll_with_tls_context::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:121
  21: std::future::get_task_context
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:111
  22: std::future::poll_with_tls_context
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:121
  23: nvim_rs::neovim::Neovim<W>::io_loop::{{closure}}::{{closure}}
             at /home/anders/.cargo/git/checkouts/nvim-rs-be8ec18c7fa103f5/9efc748/src/neovim.rs:245
  24: <std::future::GenFuture<T> as core::future::future::Future>::poll::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
  25: std::future::set_task_context
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:79
  26: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/future.rs:43
  27: tokio::task::core::Core<T>::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/core.rs:128
  28: tokio::task::harness::Harness<T,S>::poll::{{closure}}::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:120
  29: core::ops::function::FnOnce::call_once
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/ops/function.rs:227
  30: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panic.rs:317
  31: std::panicking::try::do_call
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panicking.rs:287
  32: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:78
  33: std::panicking::try
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panicking.rs:265
  34: std::panic::catch_unwind
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panic.rs:396
  35: tokio::task::harness::Harness<T,S>::poll::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:101
  36: tokio::loom::std::causal_cell::CausalCell<T>::with_mut
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/loom/std/causal_cell.rs:41
  37: tokio::task::harness::Harness<T,S>::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:100
  38: tokio::task::raw::RawTask::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/raw.rs:113
  39: tokio::task::Task<S>::run
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/mod.rs:371
  40: tokio::runtime::thread_pool::worker::GenerationGuard::run_task
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:446
  41: tokio::runtime::thread_pool::worker::GenerationGuard::process_available_work
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:304
  42: tokio::runtime::thread_pool::worker::GenerationGuard::run
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:269
  43: tokio::runtime::thread_pool::worker::Worker::run::{{closure}}::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:158
  44: std::thread::local::LocalKey<T>::try_with
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/thread/local.rs:262
  45: std::thread::local::LocalKey<T>::with
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/thread/local.rs:239
  46: tokio::runtime::thread_pool::worker::Worker::run::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:134
  47: tokio::runtime::thread_pool::current::set::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/current.rs:47
  48: std::thread::local::LocalKey<T>::try_with
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/thread/local.rs:262
  49: std::thread::local::LocalKey<T>::with
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/thread/local.rs:239
  50: tokio::runtime::thread_pool::current::set
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/current.rs:29
  51: tokio::runtime::thread_pool::worker::Worker::run
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/worker.rs:130
  52: tokio::runtime::thread_pool::Workers::spawn::{{closure}}::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/thread_pool/mod.rs:113
  53: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/blocking/task.rs:30
  54: tokio::task::core::Core<T>::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/core.rs:128
  55: tokio::task::harness::Harness<T,S>::poll::{{closure}}::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:120
  56: core::ops::function::FnOnce::call_once
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/ops/function.rs:227
  57: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panic.rs:317
  58: std::panicking::try::do_call
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panicking.rs:287
  59: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:78
  60: std::panicking::try
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panicking.rs:265
  61: std::panic::catch_unwind
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panic.rs:396
  62: tokio::task::harness::Harness<T,S>::poll::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:101
  63: tokio::loom::std::causal_cell::CausalCell<T>::with_mut
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/loom/std/causal_cell.rs:41
  64: tokio::task::harness::Harness<T,S>::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/harness.rs:100
  65: tokio::task::raw::RawTask::poll
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/raw.rs:113
  66: tokio::task::Task<S>::run
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/task/mod.rs:371
  67: tokio::runtime::blocking::pool::run_task
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/blocking/pool.rs:290
  68: tokio::runtime::blocking::pool::Inner::run
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/blocking/pool.rs:206
  69: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/blocking/pool.rs:186
  70: tokio::runtime::context::enter
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/context.rs:72
  71: tokio::runtime::handle::Handle::enter
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/handle.rs:33
  72: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.9/src/runtime/blocking/pool.rs:185
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: XError { description: "BadDrawable (invalid Pixmap or Window parameter)", error_code: 9, request_code: 149, minor_code: 4 }', src/libcore/result.rs:1165:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:77
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:61
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1028
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:65
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:50
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:188
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:205
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:464
  11: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:373
  12: rust_begin_unwind
             at src/libstd/panicking.rs:302
  13: core::panicking::panic_fmt
             at src/libcore/panicking.rs:139
  14: core::result::unwrap_failed
             at src/libcore/result.rs:1165
  15: core::result::Result<T,E>::unwrap
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/result.rs:933
  16: winit::platform_impl::platform::x11::window::UnownedWindow::inner_size_physical
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha6/src/platform_impl/linux/x11/window.rs:1013
  17: winit::platform_impl::platform::x11::window::UnownedWindow::inner_size
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha6/src/platform_impl/linux/x11/window.rs:1021
  18: winit::platform_impl::platform::Window::inner_size
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha6/src/platform_impl/linux/mod.rs:277
  19: winit::window::Window::inner_size
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha6/src/window.rs:476
  20: skulpin::renderer::renderer::Renderer::new
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.1/src/renderer/renderer.rs:269
  21: skulpin::renderer::renderer::RendererBuilder::build
             at /home/anders/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.1/src/renderer/renderer.rs:163
  22: neovide::window::ui_loop
             at src/window.rs:59
  23: std::rt::lang_start::{{closure}}
             at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  24: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:48
  25: std::panicking::try::do_call
             at src/libstd/panicking.rs:287
  26: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:78
  27: std::panicking::try
             at src/libstd/panicking.rs:265
  28: std::panic::catch_unwind
             at src/libstd/panic.rs:396
  29: std::rt::lang_start_internal
             at src/libstd/rt.rs:47
  30: main
  31: __libc_start_main
  32: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

doesn't start on Win10 with nvim-nightly

Hi, I wanted to check neovide but it doesn't start for me.

I use neovim-nightly, installed via scoop (it works ok as a standalone and embedded as a firenvim in firefox)

NVIM v0.5.0-330-g71ee46acc
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe /DW...ects/neovim/src -IC:/projects/nvim-deps/usr/include -IC:/projects/neovim/build/src/nvim/auto -IC:/projects/neovim/build/include
Compiled by appveyor@APPVYR-WIN

Features: -acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM\sysinit.vim"
  fall-back for $VIM: "C:/Program Files/nvim/share/nvim"

Run :checkhealth for more info

When I start neovide.exe nothing pops up, I can see a process of neovide but that is it.

neovide1

Segmentation fault

After cargo build and cargo build --release both target/debug/neovide and target/debug/ segfault. Here's the backtrace in debug build when it segfaults:

Backtrace:
#0  0x0000555555de2686 in hb_ot_layout_table_find_feature_variations ()
#1  0x0000555555bd1396 in hb_shape_plan_key_t::init(bool, hb_face_t*, hb_segment_properties_t const*, hb_feature_t const*, unsigned int, int const*, unsigned int, char const* const*) ()
#2  0x0000555555bd18e8 in hb_shape_plan_create_cached2 ()
#3  0x0000555555bd1b65 in hb_shape ()
#4  0x00007ffff2f95394 in  () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
#5  0x00007ffff6fb5ece in pango_shape_full () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#6  0x00007ffff6fa7d03 in  () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#7  0x00007ffff6fa96e2 in  () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#8  0x00007ffff6faba5f in  () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#9  0x00007ffff6fad5b5 in  () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#10 0x00007ffff76e773e in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff763c393 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff76404a1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#13 0x00007ffff76e3173 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007ffff779eff0 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007ffff763c393 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff76404a1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff75f9fe3 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff75ecac7 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007ffff763c393 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff76404a1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007ffff75e59dc in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#30 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#31 0x00007ffff75ecac7 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007ffff763c393 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007ffff76404a1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff75ed573 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007ffff75ecac7 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#39 0x00007ffff763c393 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#40 0x00007ffff76404a1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#41 0x00007ffff75ed573 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#42 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007ffff785e5d2 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007ffff779e26c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#47 0x00007ffff779e8ec in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#48 0x00007ffff779e9ae in gtk_widget_get_preferred_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#49 0x00007ffff779eccc in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#50 0x00007ffff7860344 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#51 0x00007ffff7864ab5 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#52 0x00007ffff646610d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#53 0x00007ffff647912e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#54 0x00007ffff6481715 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#55 0x00007ffff648212f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#56 0x00007ffff7854ee6 in gtk_widget_realize () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#57 0x00007ffff7862dad in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#58 0x00007ffff646610d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#59 0x00007ffff647912e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#60 0x00007ffff6481715 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#61 0x00007ffff648212f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#62 0x00007ffff784f0c6 in gtk_widget_show () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#63 0x00005555557e3dc7 in <O as gtk::auto::widget::WidgetExt>::show (self=0x7fffffff68b8) at /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/gtk-0.4.1/src/auto/widget.rs:2296
#64 0x00005555557e3676 in msgbox::linux::create (title=..., content=..., icon_type=msgbox::icon::IconType::Error) at /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/msgbox-0.4.0/src/linux.rs:30
#65 0x00005555557ccaca in <core::option::Option<T> as neovide::error_handling::OptionPanicExplanation<T>>::unwrap_or_explained_panic (self=..., title=..., explanation=...) at src/error_handling.rs:28
#66 0x0000555555766cb4 in neovide::renderer::caching_shaper::CachingShaper::get_font_pair (self=0x7fffffff7080, font_key=0x7fffffff6c90) at src/renderer/caching_shaper.rs:92
#67 0x0000555555767c7b in neovide::renderer::caching_shaper::CachingShaper::font_base_dimensions (self=0x7fffffff7080) at src/renderer/caching_shaper.rs:174
#68 0x000055555566d2a5 in neovide::renderer::Renderer::new () at src/renderer/mod.rs:32
#69 0x00005555557baa01 in neovide::window::ui_loop () at src/window.rs:32
#70 0x000055555577e3d2 in neovide::main () at src/main.rs:23

Updates Missed

Sometimes when I press a key, nothing happens. I suspect there is some kind of race condition that I haven't fully thought of yet, because most of the time responses to key presses are rendered correctly. Not sure what is going wrong here...

Emoji positioning

Emojis are slightly offset to the right. Would be nice to center them better.

Strange Clear Errors

image

Ever since the rewrite to use nvim_rs I've gotten weird redraw errors. Not sure if its a race condition problem or if nvim_rs messes with the event orders...

Externalize Messages

This should get rid of the bottom line (and maybe solve the giant message line bug)

Reduce Cpu Const in build_draw_commands

Currently we rebuild commands every time. Instead it would be better to record the draw command from neovim and just send them instead of rebuilding.

Backtracking will be necessary to make sure ligatures are handled properly
Scrolling must emit the entire scroll region as neovim doesn't handle these for us

This isn't a huge issue anymore given that progressive rendering is now working, but its a nice to have

Window Clearing

Sometimes remnants of popup windows are kept around. I'm not sure what causes this, but this shouldn't happen.

This will be fixed with the multigrid support in the future, but it is indicative of an algorithm problem.

Error compiling for linux

When I compile on Linux (Ubuntu 19.10 Gnome) it successfully compiles a long list of dependencies but eventually gets stuck with:

error: failed to run custom build command for `atk-sys v0.6.0`

Caused by:
  process didn't exit successfully: `/home/quinn/neovide/target/release/build/atk-sys-268e6b6307e121eb/build-script-build` (exit code: 1)
--- stderr
`"pkg-config" "--libs" "--cflags" "atk" "atk >= 2.4"` did not exit successfully: exit code: 1
--- stderr
Package atk was not found in the pkg-config search path.
Perhaps you should add the directory containing `atk.pc'
to the PKG_CONFIG_PATH environment variable
No package 'atk' found
Package atk was not found in the pkg-config search path.
Perhaps you should add the directory containing `atk.pc'
to the PKG_CONFIG_PATH environment variable
No package 'atk' found

Is there an extra step I need to do to make sure atk is installed? I don't have the PKG_CONFIG_PATH variable set. It seems like I could just set it to point to this 'atk.pkg' file, but I don't know where it is and/or how to download it.

Embed Default Font

Currently if the default font isn't found installed on the system, the font system will default to Delugia Nerd Font with size 14. This isn't great because it assumes that the nerd font is installed on all systems.

Instead I should embed the nerd font file into the executable using one of the Rust binary embedder projects and use that for the default so that the base experience looks good, and supports powerline options.

Alternative to neovim-lib

Hey, hope you don't mind this issue, feel free to delete/close it if you feel this is an intrusion.

I'm working on a fork of neovim-lib that I'd like to advertise a bit. It started with the idea to leverage async/await to allow for arbitrarily nested requests, but has grown into more of a rewrite, since I saw the chance to follow some ideas of my own :) It's definitely not API compatible, of course, but has already gotten some features I deem improvements.

If you're interested, I'd dearly like some feedback on it, and I'd certainly be open to requests/ideas, so if you want some influence on the lib you're using, it's a good time to get into touch.

Thanks for reading, and thanks for sharing your project :)

Runtime error [linux/wayland]

Running on wlroots/wayfire nightly

UI thread spawned thread 'main' panicked at 'Failed to create renderer: CreateInstanceError(InstanceError(VkError(ERROR_EXTENSION_NOT_PRESENT)))', src/libcore/result.rs:1165:5

Not really sure how to interpret that

Excited to try this out :)

Backtrace:

                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x560b765965c4 - backtrace::backtrace::trace_unsynchronized::hd4f479d7150ec4a0
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x560b765965c4 - std::sys_common::backtrace::_print_fmt::h015072984a2b172c
                               at src/libstd/sys_common/backtrace.rs:77
   3:     0x560b765965c4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6df05d3335f32194
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0x560b765bc94c - core::fmt::write::h1f444f4312eb6c27
                               at src/libcore/fmt/mod.rs:1028
   5:     0x560b76593707 - std::io::Write::write_fmt::h8d147888220078ef
                               at src/libstd/io/mod.rs:1412
   6:     0x560b76598b1e - std::sys_common::backtrace::_print::h8a6df0fa81d6af62
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0x560b76598b1e - std::sys_common::backtrace::print::h6f05b4733407e509
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0x560b76598b1e - std::panicking::default_hook::{{closure}}::h0d0a23bd02315dd8
                               at src/libstd/panicking.rs:188
   9:     0x560b76598811 - std::panicking::default_hook::h8d15a9aecb4efac6
                               at src/libstd/panicking.rs:205
  10:     0x560b7659921b - std::panicking::rust_panic_with_hook::hbe174577402a475d
                               at src/libstd/panicking.rs:464
  11:     0x560b76598dbe - std::panicking::continue_panic_fmt::h4d855dad868accf3
                               at src/libstd/panicking.rs:373
  12:     0x560b76598ca6 - rust_begin_unwind
                               at src/libstd/panicking.rs:302
  13:     0x560b765b8f2e - core::panicking::panic_fmt::hdeb7979ab6591473
                               at src/libcore/panicking.rs:139
  14:     0x560b765b9027 - core::result::unwrap_failed::h054dd680e6fcd38b
                               at src/libcore/result.rs:1165
  15:     0x560b75acebc8 - core::result::Result<T,E>::expect::hc1839edd54c6f838
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/result.rs:960
  16:     0x560b75b268ce - neovide::window::ui_loop::hf489ea8a4c132419
                               at src/window.rs:33
  17:     0x560b75b58869 - neovide::main::hb173d805ca0cff3b
                               at src/main.rs:91
  18:     0x560b75b159b0 - std::rt::lang_start::{{closure}}::hd2e582def15a1f35
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  19:     0x560b76598c43 - std::rt::lang_start_internal::{{closure}}::h6ea535ec5c50fc3e
                               at src/libstd/rt.rs:48
  20:     0x560b76598c43 - std::panicking::try::do_call::h631c6408dfccc6f5
                               at src/libstd/panicking.rs:287
  21:     0x560b765a0f9a - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:78
  22:     0x560b765996fd - std::panicking::try::hab539b2d1255d635
                               at src/libstd/panicking.rs:265
  23:     0x560b765996fd - std::panic::catch_unwind::hd5e0a26424bd7f34
                               at src/libstd/panic.rs:396
  24:     0x560b765996fd - std::rt::lang_start_internal::h3bdc4c7d98181bf9
                               at src/libstd/rt.rs:47
  25:     0x560b75b15989 - std::rt::lang_start::hd66b798f2bf5a03c
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  26:     0x560b75b588ea - main
  27:     0x7f51819ba153 - __libc_start_main
  28:     0x560b75ac3f8e - _start
  29:                0x0 - <unknown>```

Build better default font support

Failing to set the font early enough in the init file causes neovide to crash because it can't find the default delugia font.

Either I need to swap the default to a system default, or I need to embed delugia.

In any case checking if the font is available first is a good call.

Add Gui Options

Currently the only special thing we do that someone would like to disable is the animated cursor. I can probably get away with not allowing disabling of the animated cursor, but it would be very nice to make it configurable before release.

Failed to run release on macos.

I recently followed the instructions for macOS and even downloaded the vulcan-sdk package using brew. Unfortunately, it didn't work. The error output I got is :

Bridge created.
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:378:21
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

I hope this may help you debug this issue for macOS users. Thanks!

Tracking upstream: Wayland support not implemented/buggy

UI thread spawned
fontkey from: Roboto, 14
thread 'main' panicked at 'internal error: entered unreachable code', /home/sawyer/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.0/src/renderer/window_support.rs:45:14
stack backtrace:
   0:     0x55c26be318f4 - backtrace::backtrace::libunwind::trace::h65597d255cb1398b
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x55c26be318f4 - backtrace::backtrace::trace_unsynchronized::hd4f479d7150ec4a0
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x55c26be318f4 - std::sys_common::backtrace::_print_fmt::h015072984a2b172c
                               at src/libstd/sys_common/backtrace.rs:77
   3:     0x55c26be318f4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6df05d3335f32194
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0x55c26be57d6c - core::fmt::write::h1f444f4312eb6c27
                               at src/libcore/fmt/mod.rs:1028
   5:     0x55c26be2ea37 - std::io::Write::write_fmt::h8d147888220078ef
                               at src/libstd/io/mod.rs:1412
   6:     0x55c26be33e4e - std::sys_common::backtrace::_print::h8a6df0fa81d6af62
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0x55c26be33e4e - std::sys_common::backtrace::print::h6f05b4733407e509
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0x55c26be33e4e - std::panicking::default_hook::{{closure}}::h0d0a23bd02315dd8
                               at src/libstd/panicking.rs:188
   9:     0x55c26be33b41 - std::panicking::default_hook::h8d15a9aecb4efac6
                               at src/libstd/panicking.rs:205
  10:     0x55c26be3454b - std::panicking::rust_panic_with_hook::hbe174577402a475d
                               at src/libstd/panicking.rs:464
  11:     0x55c26bdb1783 - std::panicking::begin_panic::hfc51a6f59961fcca
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/panicking.rs:400
  12:     0x55c26b5d8efa - skulpin::renderer::window_support::create_surface::hdafadb24e11b4148
                               at /home/sawyer/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.0/src/renderer/window_support.rs:45
  13:     0x55c26b5b3055 - skulpin::renderer::device::VkDevice::new::hb87b290a8f6fd6cc
                               at /home/sawyer/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.0/src/renderer/device.rs:50
  14:     0x55c26b5aa1c1 - skulpin::renderer::renderer::Renderer::new::hc5d4e7bf2204550e
                               at /home/sawyer/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.0/src/renderer/renderer.rs:249
  15:     0x55c26b5a9d7a - skulpin::renderer::renderer::RendererBuilder::build::h4991be65e14a1fbf
                               at /home/sawyer/.cargo/registry/src/github.com-1ecc6299db9ec823/skulpin-0.5.0/src/renderer/renderer.rs:163
  16:     0x55c26b3dea5b - neovide::window::ui_loop::hdcad53034d51e52c
                               at src/window.rs:42
  17:     0x55c26b4429f9 - neovide::main::hcc0d95a0303618df
                               at src/main.rs:91
  18:     0x55c26b43f520 - std::rt::lang_start::{{closure}}::hfbadcd0574f266cc
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  19:     0x55c26be33f73 - std::rt::lang_start_internal::{{closure}}::h6ea535ec5c50fc3e
                               at src/libstd/rt.rs:48
  20:     0x55c26be33f73 - std::panicking::try::do_call::h631c6408dfccc6f5
                               at src/libstd/panicking.rs:287
  21:     0x55c26be3c2ca - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:78
  22:     0x55c26be34a2d - std::panicking::try::hab539b2d1255d635
                               at src/libstd/panicking.rs:265
  23:     0x55c26be34a2d - std::panic::catch_unwind::hd5e0a26424bd7f34
                               at src/libstd/panic.rs:396
  24:     0x55c26be34a2d - std::rt::lang_start_internal::h3bdc4c7d98181bf9
                               at src/libstd/rt.rs:47
  25:     0x55c26b43f4f9 - std::rt::lang_start::h1cd89b6af8d283da
                               at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61
  26:     0x55c26b442a7a - main
  27:     0x7f3a6ddfd153 - __libc_start_main
  28:     0x55c26b385e9e - _start
  29:                0x0 - <unknown>

Might be upstream, but should look at the issue here to be sure

W10: Could not load configured font

When starting on windows I get the following error:
image

When I looked at caching_shaper.rs, it says "Segoe UI Emoji" which I have.
image

I removed my ginit.vim too which had guifont inside.

how do I detect neovide

I would like to check for neovide and set appropriate settings that is only enabled in neovide.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.