Giter VIP home page Giter VIP logo

neoray's People

Contributors

bunyk avatar hismailbulut avatar ishan9299 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

neoray's Issues

Segfault after loading of Consolas Font

Please complete the following information:

  • OS or distro: WIN 8
  • neoray version: 0.1.0

Describe the bug

Without font changes there is no problem, if i change the font to Consolas, startup throws segfault.

Steps to reproduce

Your neoray config in init.vim (Only the part that concerns neoray!)

set guifont=Consolas:h10

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 Win32 WGL EGL OSMesa MinGW
[DEBUG] [NEORAY] Video mode {Width:1920 Height:1080 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Creating window, width: 1152 height: 810
[DEBUG] [NEORAY] Glfw window created successfully.
[DEBUG] [NEORAY] Monitor diagonal: 27.01 dpi: 81.57
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 3.3.0 NVIDIA 471.41
[DEBUG] [RENDERER] Vendor: NVIDIA Corporation
[DEBUG] [RENDERER] Renderer: NVIDIA GeForce GTX 760/PCIe/SSE2
[DEBUG] [RENDERER] GLSL: 3.30 NVIDIA via Cg compiler
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NVIM] Option CursorAnimTime is 0.08
[DEBUG] [NVIM] Option Transparency is 0.95
[DEBUG] [NVIM] Option TargetTPS is 120
[WARNING] [NVIM] Invalid option BoxDrawingOn
[DEBUG] [NVIM] Option WindowSize is 120 40
[DEBUG] [NEORAY] Window size changed internally: 960 640
[DEBUG] [NEORAY] Window position centered.
[DEBUG] [NVIM] Option WindowState is centered
[DEBUG] [NVIM] Option KeyFullscreen is <M-C-CR>
[DEBUG] [NVIM] Option KeyZoomIn is <C-ScrollWheelUp>
[DEBUG] [NVIM] Option KeyZoomOut is <C-ScrollWheelDown>
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 1.8587459s
[DEBUG] [NEORAY] Loading font Consolas with size 10
[TRACE] [NEORAY] Regular: consola.ttf
[TRACE] [NEORAY] Bold Italic: consolaz.ttf
[TRACE] [NEORAY] Italic: consolai.ttf
[TRACE] [NEORAY] Bold: consolab.ttf
Segmentation fault

Mapping with <bar> or "|" doesn't work

Please complete the following information:

  • OS or distro: Linux Mint
  • neoray version: 0.1.0

Describe the bug

Any mapping that contains <bar> (VimScript) or "|" (Lua) doesn't work. I use <leader>| to split the current window vertically.

I use a keyboard with Brazilian layout, don't know if that is causing the issue.

Steps to reproduce

Just create any mapping with a vertical bar on the left-hand side, as in the examples below.

Your neoray config in init.vim (Only the part that concerns neoray!)

nnoremap <Leader><Bar> <C-W>v

" OR:

lua <<EOF
vim.api.nvim_set_keymap('n', '|', '<c-w>v', { noremap = true })
EOF

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

Resolution Problem On macOS

OS or distro:

image

neoray version: 0.2.5

Describe the bug

1. right after startup

image

2. press any key

image

3. tried to set guifont smaller but still.

everything works fine but the resolution is malfunctioning on macOS 13 Ventura.

please fix this, thank you

Question?

it possible to use sudo command to run tun
currently neoray using osascript
my program will be signed with developer id certifcate
p.start("osascript", {"-e", QString("do shell script \"%1\" with administrator privileges") .arg("pkill -2 -U 0 nekobox_core")});

Feature request: pixel grid aligned box drawing/braile characters

It looks very nice when box drawing graphical characters get special treatment and are always drawn aligned to pixel grid (instead of using font default anti-aliased glyphs) - e.g. always having sharp text indentation lines without gaps (indentline.vim), or precise sharp corners for popup windows with outlines..

Patch that enables it on st:
https://st.suckless.org/patches/boxdraw/

Demontstrations (on top - st, on bottom - neoray):

  • VirtualBoxVM_Z4iSTp1B3f
  • VirtualBoxVM_8bRYTWdaZH

Program closes instantly after starting.

Hello. I wanted to try out this gui client. But each time I start the program it just exists automatically without any error messages. Same thing when I execute the program in the cmd prompt. I use windows and tried starting the "neoray_windows_x64.exe" program.

Neovim is in my system path included. But I also tried starting the program it in the neovim directory, doesn't help.

Crash on macOS

Edit: Probably related to the other crash ticket, but was not sure.

Please complete the following information:

  • Operating System or distro: macOS 10.15.7
  • neoray version: 0.0.9

Describe the bug
Crash on lauching the program

Steps to reproduce

make
./bin/neoray_debug

Then crash.
Same on make release
Your neoray config in init.vim

let s:fontname = 'CascadiaCodePL'
let s:fontsize = 10

execute 'set guifont=' . s:fontname . ':h' . s:fontsize

Crash log if available (may be generated by neoray after crash)
From debug binary:

$ ./bin/neoray_debug                                                                                                     19:06:43
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 Cocoa NSGL EGL OSMesa
[DEBUG] [NEORAY] Video mode {Width:1440 Height:2560 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Creating window, width: 864 height: 1920
[DEBUG] [NEORAY] Glfw window created successfully.
[DEBUG] [NEORAY] Monitor diagonal: 23.79 dpi: 123.45
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 4.1 ATI-3.10.22
[DEBUG] [RENDERER] Vendor: ATI Technologies Inc.
[DEBUG] [RENDERER] Renderer: AMD Radeon Pro 560X OpenGL Engine
[DEBUG] [RENDERER] GLSL: 4.10
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NVIM] Deprecated option neoray_key_increase_fontsize is <C-ScrollWheelUp>
[DEBUG] [NVIM] Deprecated option neoray_key_decrease_fontsize is <C-ScrollWheelDown>
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 270.302955ms
[DEBUG] [NEORAY] Loading font CascadiaCodePL with size 10
[TRACE] [NEORAY] Regular: CascadiaCodePL-Regular.otf
[WARNING] [NEORAY] Font has no bold italic face.
[WARNING] [NEORAY] Font has no italic face.
[TRACE] [NEORAY] Bold: CascadiaCodePL-Bold.otf
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff72779929]

runtime stack:
runtime.throw(0x4635390, 0x2a)
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/panic.go:1117 +0x72
runtime.sigpanic()
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/signal_unix.go:718 +0x2ef

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x4501a70, 0xc00056f588, 0x391af5c0)
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/cgocall.go:154 +0x7a fp=0xc00056f558 sp=0xc00056f520 pc=0x4006cba
github.com/go-gl/gl/v3.3-core/gl._Cfunc_glowTexSubImage2D(0x7fff42531277, 0xde1, 0x0, 0x10000000100, 0x140100001908, 0x0)
	_cgo_gotypes.go:19616 +0x65 fp=0xc00056f588 sp=0xc00056f558 pc=0x421a4a5
github.com/go-gl/gl/v3.3-core/gl.TexSubImage2D.func1(0xde1, 0x0, 0x10000000100, 0x140100001908, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/go-gl/[email protected]/v3.3-core/gl/package.go:12489 +0xc5 fp=0xc00056f5d0 sp=0xc00056f588 pc=0x424a245
github.com/go-gl/gl/v3.3-core/gl.TexSubImage2D(0xde1, 0x0, 0x10000000100, 0x140100001908, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/go-gl/[email protected]/v3.3-core/gl/package.go:12489 +0x79 fp=0xc00056f608 sp=0xc00056f5d0 pc=0x421ba79
main.(*Texture).clear(0x4bc00c0)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/texture.go:46 +0xa9 fp=0xc00056f648 sp=0xc00056f608 pc=0x44d9549
main.(*Renderer).clearAtlas(0x4bc0050)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/renderer.go:121 +0x9f fp=0xc00056f6e0 sp=0xc00056f648 pc=0x44d00ff
main.(*Renderer).setFont(0x4bc0050, 0x41200000, 0xc000560090, 0x10, 0xc000539100, 0x0, 0x0, 0xc0000d6700)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/renderer.go:68 +0xb8 fp=0xc00056f708 sp=0xc00056f6e0 pc=0x44cfc18
main.(*UIOptions).setGuiFont(0x4bc0120, 0xc0005140c0, 0x12)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/uioptions.go:65 +0x496 fp=0xc00056f890 sp=0xc00056f708 pc=0x44d9bb6
main.option_set(0xc00017e330, 0x1, 0x1)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/redrawevents.go:108 +0x2bc fp=0xc00056f998 sp=0xc00056f890 pc=0x44c74dc
main.handleRedrawEvents()
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/redrawevents.go:28 +0x4cd3 fp=0xc00056fae0 sp=0xc00056f998 pc=0x44c5513
main.(*Editor).update(0x4bbfec0)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/editor.go:171 +0x34 fp=0xc00056fb00 sp=0xc00056fae0 pc=0x44adc94
main.(*Editor).MainLoop(0x4bbfec0)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/editor.go:154 +0x62d fp=0xc00056fcd0 sp=0xc00056fb00 pc=0x44ad9cd
main.main()
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/main.go:69 +0x447 fp=0xc00056ff88 sp=0xc00056fcd0 pc=0x44b7767
runtime.main()
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/proc.go:225 +0x256 fp=0xc00056ffe0 sp=0xc00056ff88 pc=0x403e4f6
runtime.goexit()
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc00056ffe8 sp=0xc00056ffe0 pc=0x4077161

goroutine 20 [IO wait]:
internal/poll.runtime_pollWait(0xbd61320, 0x72, 0x0)
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000ac098, 0x72, 0x0, 0x0, 0x45f0315)
	/usr/local/Cellar/go/1.16.6/libexec/src/internal/poll/fd_poll_runtime.go:87 +0xe6
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.16.6/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0000ac080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.16.6/libexec/src/internal/poll/fd_unix.go:401 +0x32f
net.(*netFD).accept(0xc0000ac080, 0x50, 0x404ea3c, 0xc000288c78)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/fd_unix.go:172 +0x58
net.(*TCPListener).accept(0xc0000bc000, 0x30, 0x30, 0x57aa5b8)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/tcpsock_posix.go:139 +0x50
net.(*TCPListener).Accept(0xc0000bc000, 0xc0000a41b0, 0xc000288ce8, 0x41b64d0, 0xc0000a41d0)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/tcpsock.go:261 +0x8e
net/http.(*Server).Serve(0xc000098000, 0x46ba970, 0xc0000bc000, 0x0, 0x0)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2961 +0x470
net/http.(*Server).ListenAndServe(0xc000098000, 0xd8, 0x0)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:2890 +0x10a
net/http.ListenAndServe(...)
	/usr/local/Cellar/go/1.16.6/libexec/src/net/http/server.go:3144
main.start_pprof.func1()
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/utils_debug.go:27 +0x105
created by main.start_pprof
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/utils_debug.go:26 +0x45

goroutine 21 [select]:
os/exec.(*Cmd).Start.func2(0xc0001cd760)
	/usr/local/Cellar/go/1.16.6/libexec/src/os/exec/exec.go:449 +0x136
created by os/exec.(*Cmd).Start
	/usr/local/Cellar/go/1.16.6/libexec/src/os/exec/exec.go:448 +0xbaf

goroutine 22 [runnable]:
github.com/neovim/go-client/msgpack.(*Decoder).Unpack(0xc00010e640, 0xc00045fb00, 0xc00037248c)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/unpack.go:159 +0xe9f
github.com/neovim/go-client/msgpack.(*decodeState).unpack(...)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:49
github.com/neovim/go-client/msgpack.decodeNoReflect(0xc000822750, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:666 +0x5f9
github.com/neovim/go-client/msgpack.decodeNoReflect(0xc000822750, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:658 +0x465
github.com/neovim/go-client/msgpack.decodeNoReflect(0xc000822750, 0xc000710bf0, 0x194)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:658 +0x465
github.com/neovim/go-client/msgpack.interfaceDecoder(0xc000822750, 0x4580320, 0xc000710bf0, 0x194)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:363 +0x110
github.com/neovim/go-client/msgpack.sliceArrayDecoder.decodeSlice(0x4646318, 0xc000822750, 0x4570580, 0xc0000267e0, 0x197)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:422 +0x22e
github.com/neovim/go-client/msgpack.(*Decoder).Decode(0xc00010e640, 0x45652a0, 0xc0000267e0, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/decode.go:114 +0x22d
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).createCall(0xc00011d520, 0xc0003673e0, 0xc000372140, 0x6, 0xc00011d820, 0x1, 0x0, 0xc000113e10)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:461 +0x93f
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).handleNotification(0xc00011d520, 0x3, 0xc, 0x2)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:640 +0x185
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve(0xc00011d520, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:218 +0x2ab
github.com/neovim/go-client/nvim.(*Nvim).Serve(0xc00011b4d0, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:53 +0xae
github.com/neovim/go-client/nvim.(*Nvim).startServe.func1(0xc00011b4d0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:59 +0x3d
created by github.com/neovim/go-client/nvim.(*Nvim).startServe
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:58 +0x9f

goroutine 50 [semacquire]:
sync.runtime_SemacquireMutex(0xc0003008fc, 0x900000000, 0x1)
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0003008f8)
	/usr/local/Cellar/go/1.16.6/libexec/src/sync/mutex.go:138 +0x1d4
sync.(*Mutex).Lock(0xc0003008f8)
	/usr/local/Cellar/go/1.16.6/libexec/src/sync/mutex.go:81 +0x85
main.(*NvimProcess).startUI.func1(0xc0000a4240, 0x2, 0x2)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/nvimproc.go:233 +0x88
reflect.Value.call(0x4574420, 0xc000374390, 0x13, 0x45f178e, 0x9, 0xc000129d70, 0x1, 0x1, 0x404ea3c, 0x450d3c0, ...)
	/usr/local/Cellar/go/1.16.6/libexec/src/reflect/value.go:476 +0x99c
reflect.Value.CallSlice(0x4574420, 0xc000374390, 0x13, 0xc000129d70, 0x1, 0x1, 0x41b302a, 0xc00011d5e8, 0x1)
	/usr/local/Cellar/go/1.16.6/libexec/src/reflect/value.go:350 +0xd9
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).runNotifications(0xc00011d520)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:677 +0xf1
created by github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0x18d

goroutine 23 [semacquire]:
sync.runtime_SemacquireMutex(0xc00011b4fc, 0x900000000, 0x1)
	/usr/local/Cellar/go/1.16.6/libexec/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc00011b4f8)
	/usr/local/Cellar/go/1.16.6/libexec/src/sync/mutex.go:138 +0x1d4
sync.(*Mutex).Lock(0xc00011b4f8)
	/usr/local/Cellar/go/1.16.6/libexec/src/sync/mutex.go:81 +0x85
github.com/neovim/go-client/nvim.(*Nvim).Serve(0xc00011b4d0, 0x0, 0x0)
	/Users/andis.sprinkis/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:51 +0x56
main.(*NvimProcess).startUI.func2(0x4bbfec0)
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/nvimproc.go:240 +0x59
created by main.(*NvimProcess).startUI
	/Users/andis.sprinkis/Downloads/neoray-0.0.9/src/nvimproc.go:239 +0x44a

Debug output (you can generate starting neoray with --verbose option)

Cannot load custom font.

Hello 👋 :)
Thank you for your support!

I tried using different fonts using neoray, but that does not seem to be working.

Here is the font that I have installed:
image

Here is my .vimrc config line:

set guifont=UbuntuMono_NF:h8

And here is neorays output on startup:
image

If I use the same configuration on some other gui client, then it seems to work correctly.

macOS: Stuck on Loading default font

Please complete the following information:

Operating System or distro: macOS 10.15.7
neoray version: 0.0.9

Describe the bug
Stuck on

[DEBUG] [NEORAY] Loading default font.

and no GUI

Steps to reproduce
Start neoray after compilation and with empty init.vim file

Your neoray config in init.vim
empty file, but same result with set guifont=CascadiaCodePL:h10

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

$ ./bin/neoray --verbose                                                                                                 22:01:37
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 Cocoa NSGL EGL OSMesa
[DEBUG] [NEORAY] Video mode {Width:1440 Height:2560 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Creating window, width: 864 height: 1920
[DEBUG] [NEORAY] Glfw window created successfully.
[DEBUG] [NEORAY] Monitor diagonal: 23.79 dpi: 123.45
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 4.1 ATI-3.10.22
[DEBUG] [RENDERER] Vendor: ATI Technologies Inc.
[DEBUG] [RENDERER] Renderer: AMD Radeon Pro 560X OpenGL Engine
[DEBUG] [RENDERER] GLSL: 4.10
[DEBUG] [NEORAY] Loading default font.

Doesn't obey xkb options

  • OS or distro: EndeavourOS Gnome 40
  • neoray version: v0.1.1 (build from git)

Describe the bug

Neoray does not obey my swapped capslock and control keys. Keybindings with C- do not work with capslock, but with the actual Ctrl key. Which then also toggles capslock.

Steps to reproduce

In terminal, execute:

dconf write /org/gnome/desktop/input-sources/xkb-options "['ctrl:swapcaps']"

Now the left Ctrl key should act as CapsLock, CapsLock should act as Ctrl.

In neoray, CapsLock does nothing, LCtrl acts as both Ctrl and CapsLock.

Your neoray config in init.vim (Only the part that concerns neoray!)

Tested with a clean config directory.

Debug output (you can generate starting neoray with --verbose option)

[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.1
[TRACE] [NEORAY] Glfw version: 3.3.4 X11 GLX EGL OSMesa clock_gettime evdev
[DEBUG] [NEORAY] Monitor count: 1 Selected monitor: XWAYLAND0
[DEBUG] [NEORAY] Video mode &{Width:1366 Height:768 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Glfw window created with size 800 600
[DEBUG] [NEORAY] Window content scale is: 1.00, 1.00
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 4.5 (Core Profile) Mesa 21.2.3
[DEBUG] [RENDERER] Vendor: Intel Open Source Technology Center
[DEBUG] [RENDERER] Renderer: Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)
[DEBUG] [RENDERER] GLSL: 4.50
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NEORAY] Default font loaded.
[DEBUG] [NVIM] Attached to neovim as an ui client.
[DEBUG] [NEORAY] Checking user options.
[DEBUG] [NVIM] Option CursorAnimTime is 0
[DEBUG] [NVIM] Option ContextMenuOn is false
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 370.960171ms
[DEBUG] [NEORAY] Loading font JetBrainsMono with size 10.5
[TRACE] [NEORAY] Regular: JetBrainsMono-Regular.ttf
[TRACE] [NEORAY] Bold Italic: JetBrainsMono-BoldItalic.ttf
[TRACE] [NEORAY] Italic: JetBrainsMono-Italic.ttf
[TRACE] [NEORAY] Bold: JetBrainsMono-Bold.ttf
[TRACE] [NVIM] Neovim child process closed.
[TRACE] [PERFORMANCE] Program finished. Total execution time: 15.229577914s
[DEBUG] [NEORAY] Window destroyed.
[DEBUG] [NEORAY] Glfw terminated.

Crash on launch

Please complete the following information:

  • OS or distro: Windows 10 x64
  • neoray version: 0.1.1

Describe the bug
Crash on launch.

neoray-win64_OlAFbdzI5E

Does start normally with

.\neoray-win64.exe -u NORC --noplugin

Steps to reproduce

Launch program normally.

Your neoray config in init.vim (Only the part that concerns neoray!)

let s:fontname = 'CascadiaCodePL'
let s:fontsize = 13

exe 'set guifont=' . s:fontname . ':h' . s:fontsize

NeoraySet KeyZoomIn <C-ScrollWheelUp>
NeoraySet KeyZoomOut <C-ScrollWheelDown>

Crash log if available (may be generated by neoray after crash)

NEORAY v0.1.1 Release Crash Report 2021-09-24 14:29:21.8315012 +0000 UTC
Please open an issue in github with this file.
The program is crashed because of the following reasons:
[FATAL] [NEORAY] [PANIC!] runtime error: invalid memory address or nil pointer dereference

goroutine dump:
goroutine 1 [running, locked to thread]:
main.createCrashReport({0xc000452060, 0x5b})
	D:/a/neoray/neoray/src/logger.go:104 +0x330
main.logMessage(0x35b7e8, 0xc0, {0xc00035b7f0, 0xc00035b7f8, 0x662000})
	D:/a/neoray/neoray/src/logger.go:168 +0x25a
main.shutdownLogger()
	D:/a/neoray/neoray/src/logger.go:77 +0x70
panic({0x66af80, 0x5d4ae0})
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/runtime/panic.go:1038 +0x215
main.(*Font).GetCellSize(0xc00035ba80)
	D:/a/neoray/neoray/src/font.go:166 +0x43
main.(*Renderer).updateCellSize(0x842450, 0xc000398cd0)
	D:/a/neoray/neoray/src/renderer.go:107 +0x25
main.(*Renderer).setFont(0x842450, {0x41500000, {0xc000454330, 0x10}, 0xc000380e00, 0x0, 0x0, 0x0})
	D:/a/neoray/neoray/src/renderer.go:68 +0xab
main.(*UIOptions).setGuiFont(0x842530, {0xc000454048, 0x842450})
	D:/a/neoray/neoray/src/uioptions.go:65 +0x26a
main.option_set({0xc00045c990, 0x1, 0xffffffffffffffff})
	D:/a/neoray/neoray/src/redrawevents.go:108 +0x265
main.handleRedrawEvents()
	D:/a/neoray/neoray/src/redrawevents.go:28 +0x4b9
main.(*Editor).update(0x8422c0)
	D:/a/neoray/neoray/src/editor.go:179 +0x1e
main.(*Editor).MainLoop(0x8422c0)
	D:/a/neoray/neoray/src/editor.go:162 +0x38a
main.main()
	D:/a/neoray/neoray/src/main.go:71 +0x296

goroutine 13 [chan send]:
main.(*NvimProcess).startUI.func2()
	D:/a/neoray/neoray/src/nvimproc.go:195 +0xcc
created by main.(*NvimProcess).startUI
	D:/a/neoray/neoray/src/nvimproc.go:189 +0x3b4

Debug output (you can generate starting neoray with --verbose option)

NEORAY v0.1.1 Release LOG 2021-09-24 14:31:03.8802397 +0000 UTC
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[TRACE] [NEORAY] Glfw version: 3.3.4 Win32 WGL EGL OSMesa MinGW
[DEBUG] [NEORAY] Monitor count: 1 Selected monitor: Generic PnP Monitor
[DEBUG] [NEORAY] Video mode &{Width:1440 Height:2560 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Glfw window created with size 883 662
[DEBUG] [NEORAY] Window content scale is: 1.10, 1.10
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 3.3.148202 Core Profile Forward-Compatible Context 21.3.1 27.20.15003.1004
[DEBUG] [RENDERER] Vendor: ATI Technologies Inc.
[DEBUG] [RENDERER] Renderer: Radeon RX 5500 XT
[DEBUG] [RENDERER] GLSL: 4.60
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NEORAY] Default font loaded.
[DEBUG] [NVIM] Attached to neovim as an ui client.
[DEBUG] [NEORAY] Checking user options.
[DEBUG] [NVIM] Option KeyZoomIn is <C-ScrollWheelUp>
[DEBUG] [NVIM] Option KeyZoomOut is <C-ScrollWheelDown>
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 460.8739ms
[DEBUG] [NEORAY] Loading font CascadiaCodePL with size 13
[TRACE] [NEORAY] Regular: CascadiaCodePL.ttf
[WARNING] [NEORAY] Font has no bold italic face.
[WARNING] [NEORAY] Font has no italic face.
[WARNING] [NEORAY] Font has no bold face.
[TRACE] [NVIM] Neovim child process closed.
[DEBUG] [NEORAY] Window destroyed.
[DEBUG] [NEORAY] Glfw terminated.
[FATAL] [NEORAY] [PANIC!] runtime error: invalid memory address or nil pointer dereference

typing period also inserts comma

Please complete the following information:

  • OS or distro: ArchCraft
  • neoray version: latest

Describe the bug
Hi! I'm a laptop user, my laptop has a calculator keyboard which I mostly use to type numbers, the strange thing is, when I press the period button at the bottom of this part of my keyboard, it inserts ,. instead of a single period, and it's really annoying.
Steps to reproduce
open a blank buffer or a file and press period button at the bottom of calculator keyboard.

Neoray window does not show up when using telescope plugin

Please complete the following information:

  • OS or distro: Ubuntu
  • neoray version: 0.6.0

Describe the bug
So, when I add telescope plugin to my configuration, neoray does not render a window, logs show only

[TRACE] [NVIM] Neovim version 0.6.0
[TRACE] [NEORAY] Glfw version: 3.3.4 X11 GLX EGL OSMesa clock_gettime evdev
[TRACE] [RENDERER] Opengl Version: 4.6 (Core Profile) Mesa 23.0.4-0ubuntu1~22.04.1

With empty config, logs show also:

[TRACE] [PERFORMANCE] Start time: 244.718002ms
...

Not sure if it is related to #33 , but very similar behaviour.

Steps to reproduce
Just add a plugin like shown in config:

Your neoray config in init.vim (Only the part that concerns neoray!)

call plug#begin('~/.vim/plugged')

Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.4' }

" Initialize plugin system
call plug#end()

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

Neoray process tree doesn't exit on closing the GUI

Please complete the following information:

  • OS or distro: Windows 10 x64
  • neoray version: 0.1.1 and probably all previous ones

Describe the bug
Occasionally when I close the GUI using X button on the right corner, Neoray process tree don't exit.
In Task Manager after a while I notice multiple such Neoray such supposedly closed instances/process trees still running.

PROCEXP64_GllFhDde0f

Maybe it has something to do with those other processes running under Neovim, like conhost with coc.nvim Node server or fzf instance (from fzf.vim). I am also not entirely sure if isn't just Neovim issue.

Steps to reproduce

  1. Run Neoray
  2. Close it using the GUI X button
  3. Observe process still running

(Tricky to replicate, as it happens only on occasion. Program usually exits normally.)

Your neoray config in init.vim (Only the part that concerns neoray!)

vim.opt.guifont = 'CascadiaCodePL:h13'
vim.cmd([[
  NeoraySet KeyZoomIn <C-ScrollWheelUp>
  NeoraySet KeyZoomOut <C-ScrollWheelDown>
]])

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

The `--version` flag is passed to nvim, so it is not a way to figure out version of neoray

  • Operating System or distro: Ubuntu
  • neoray version: master branch for today, hard to figure out :)

Describe the bug
--version flag is passed to nvim, it probably prints version to stdout and exits, but neoray still tries to establish rpc session with it.

I would expect it to output version of nvim.

Steps to reproduce

Just start it with --version and observe error logs:

tbunyk@ZALANDO-33620:~/projects/neoray$ bin/neoray_debug --version
[DEBUG] [NVIM] Neovim started with command: nvim --embed --version
[ERROR] [NVIM] Failed to get api information: msgpack/rpc: session closed
[ERROR] [NVIM] Failed to set client information: msgpack/rpc: session closed
[ERROR] [NVIM] Failed to execute scripts.vim: msgpack/rpc: session closed
[FATAL] [NVIM] Attaching ui failed: msgpack/rpc: session closed

Editor crashes unexpectedly

Please complete the following information:

  • Operating System or distro: Ubuntu 20.04.3 LTS
  • neoray version: 0.0.9 I would guess. :)

Steps to reproduce
Not yet sure exactly, sorry. Maybe logs would help.

Two times this happened when I was trying to open new file in another tab (:tabe ...), but I tried it again, it did not happened, so there should be something else in play here.

Your neoray config in init.vim

call plug#begin('~/.vim/plugged')

Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'overcache/NeoSolarized'
Plug 'tpope/vim-fugitive'

Plug 'fatih/vim-go'

" Initialize plugin system
call plug#end()

set clipboard=unnamedplus
set number " show numbers of lines
set laststatus=2 " always display status line
set colorcolumn=80

set guifont=Ubuntu\ Mono:h9
colorscheme NeoSolarized

let neoray_key_toggle_fullscreen='<F11>'
let neoray_cursor_animation_time=0.03


" coc.nvim settings
" -------------------------------------------------------------------------------------------------

let g:coc_node_path = '/home/tbunyk/.nvm/versions/node/v16.8.0/bin/node'

" if hidden is not set, TextEdit might fail.
set hidden
" Better display for messages
set cmdheight=2
" Smaller updatetime for CursorHold & CursorHoldI
set updatetime=300
" don't give |ins-completion-menu| messages.
set shortmess+=c
" always show signcolumns
set signcolumn=yes

" Use tab for trigger completion with characters ahead and navigate.
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"

function! s:check_back_space() abort
  let col = col('.') - 1
  return !col || getline('.')[col - 1]  =~# '\s'
endfunction

" Use <c-space> to trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()

" Use `[c` and `]c` to navigate diagnostics
nmap <silent> [c <Plug>(coc-diagnostic-prev)
nmap <silent> ]c <Plug>(coc-diagnostic-next)

" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)

" Use U to show documentation in preview window
nnoremap <silent> U :call <SID>show_documentation()<CR>

" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)

" Remap for format selected region
vmap <leader>f  <Plug>(coc-format-selected)
nmap <leader>f  <Plug>(coc-format-selected)
" Show all diagnostics
nnoremap <silent> <space>a  :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent> <space>e  :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent> <space>c  :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent> <space>o  :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent> <space>s  :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j  :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k  :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent> <space>p  :<C-u>CocListResume<CR>


" disable vim-go :GoDef short cut (gd)
" this is handled by LanguageClient [LC]
let g:go_def_mapping_enabled = 0


" Other useful stuff
" ---------------------------------------------------
let g:go_auto_type_info = 1

" Quickfix list navigation
noremap <A-j> :CocNext<Return>
noremap <A-k> :CocPrev<Return>

Crash log if available (may be generated by neoray after crash)

tbunyk@ZALANDO-33620:~/projects/neoray$ bin/neoray_debug 
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 X11 GLX EGL OSMesa clock_gettime evdev
[DEBUG] [NEORAY] Video mode {Width:1920 Height:1080 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Creating window, width: 1152 height: 810
[DEBUG] [NEORAY] Glfw window created successfully.
[DEBUG] [NEORAY] Monitor diagonal: 13.94 dpi: 158.00
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 4.6 (Core Profile) Mesa 21.0.3
[DEBUG] [RENDERER] Vendor: Intel
[DEBUG] [RENDERER] Renderer: Mesa Intel(R) UHD Graphics 620 (KBL GT2)
[DEBUG] [RENDERER] GLSL: 4.60
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NVIM] Deprecated option neoray_cursor_animation_time is 0.03
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 254.010736ms
[DEBUG] [NEORAY] Loading font Ubuntu Mono with size 9
[TRACE] [NEORAY] Regular: UbuntuMono-R.ttf
[TRACE] [NEORAY] Bold Italic: UbuntuMono-BI.ttf
[TRACE] [NEORAY] Italic: UbuntuMono-RI.ttf
[TRACE] [NEORAY] Bold: UbuntuMono-B.ttf
[TRACE] [NVIM] Neovim child process closed.
[WARNING] [NVIM] Failed to close neovim child process: signal: killed
[DEBUG] [NEORAY] Window destroyed.
[DEBUG] [NEORAY] Glfw terminated.
[DEBUG] [PERFORMANCE] CreateWindow                           Calls: 1   Time: 146.886609ms
[DEBUG] [PERFORMANCE] (*NvimProcess).requestApiInfo          Calls: 1   Time: 63.208417ms
[DEBUG] [PERFORMANCE] RefreshCallback                        Calls: 8   Time: 88.278312ms  Avg:11.034789ms  Max:25.730734ms
[DEBUG] [PERFORMANCE] CreateRenderer                         Calls: 1   Time: 9.266358ms
[DEBUG] [PERFORMANCE] (*Editor).initGlfw                     Calls: 1   Time: 7.5846ms
[DEBUG] [PERFORMANCE] CreateFont                             Calls: 1   Time: 7.190245ms
[DEBUG] [PERFORMANCE] rglInit                                Calls: 1   Time: 6.125807ms
[DEBUG] [PERFORMANCE] (*Renderer).createVertexData           Calls: 6   Time: 26.370344ms  Avg:4.395057ms   Max:7.209585ms
[DEBUG] [PERFORMANCE] (*Renderer).drawCells                  Calls: 100 Time: 363.038214ms Avg:3.630382ms   Max:37.75459ms
[DEBUG] [PERFORMANCE] (*Renderer).clearAtlas                 Calls: 1   Time: 2.263473ms
[DEBUG] [PERFORMANCE] CreateDefaultFont                      Calls: 1   Time: 1.943344ms
[DEBUG] [PERFORMANCE] (*NvimProcess).requestStartupVariables Calls: 1   Time: 1.102399ms
[DEBUG] [PERFORMANCE] CreateNvimProcess                      Calls: 1   Time: 861.517µs
[DEBUG] [PERFORMANCE] charCallback                           Calls: 49  Time: 25.12114ms   Avg:512.676µs    Max:1.001744ms
[DEBUG] [PERFORMANCE] keyCallback                            Calls: 141 Time: 13.798203ms  Avg:97.859µs     Max:780.863µs
[FATAL] [NEORAY] [PANIC!] runtime error: invalid memory address or nil pointer dereference
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x7ff4719dbfc4]

runtime stack:
runtime.throw({0x9af751, 0x73})
	/usr/local/go/src/runtime/panic.go:1198 +0x71
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:719 +0x396

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x888300, 0xc0005b74d0)
	/usr/local/go/src/runtime/cgocall.go:156 +0x6e fp=0xc0005b74a8 sp=0xc0005b7470 pc=0x4396ce
github.com/sqweek/dialog._Cfunc_gtk_dialog_run(0x3c08330)
	_cgo_gotypes.go:236 +0x85 fp=0xc0005b74d0 sp=0xc0005b74a8 pc=0x541265
github.com/sqweek/dialog.runMsgDlg.func4(0x3a0f960)
	/home/tbunyk/go/pkg/mod/github.com/sqweek/[email protected]/dlgs_linux.go:39 +0x65 fp=0xc0005b7510 sp=0xc0005b74d0 pc=0x542705
github.com/sqweek/dialog.runMsgDlg({0x9694c3, 0x5}, 0x0, 0x0, 0x0, 0xc0005b7740)
	/home/tbunyk/go/pkg/mod/github.com/sqweek/[email protected]/dlgs_linux.go:39 +0x22c fp=0xc0005b7698 sp=0xc0005b7510 pc=0x5425ac
github.com/sqweek/dialog.(*MsgBuilder).error(...)
	/home/tbunyk/go/pkg/mod/github.com/sqweek/[email protected]/dlgs_linux.go:51
github.com/sqweek/dialog.(*MsgBuilder).Error(...)
	/home/tbunyk/go/pkg/mod/github.com/sqweek/[email protected]/dlgs.go:61
main.logMessage(0x4, 0x1, {0xc0005b7790, 0x2, 0x2})
	/home/tbunyk/projects/neoray/src/logger.go:170 +0x312 fp=0xc0005b7770 sp=0xc0005b7698 pc=0x860472
main.shutdownLogger()
	/home/tbunyk/projects/neoray/src/logger.go:77 +0x7f fp=0xc0005b77c0 sp=0xc0005b7770 pc=0x85faff
panic({0x914c60, 0xc526d0})
	/usr/local/go/src/runtime/panic.go:1047 +0x266 fp=0xc0005b7880 sp=0xc0005b77c0 pc=0x46bd46
runtime.panicmem(...)
	/usr/local/go/src/runtime/panic.go:221
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:735 +0x327 fp=0xc0005b78d0 sp=0xc0005b7880 pc=0x483e47
main.(*GridManager).hide(...)
	/home/tbunyk/projects/neoray/src/grid.go:201
main.win_hide({0xc000377240, 0x2, 0x2})
	/home/tbunyk/projects/neoray/src/redrawevents.go:390 +0x212 fp=0xc0005b7960 sp=0xc0005b78d0 pc=0x875bd2
main.handleRedrawEvents()
	/home/tbunyk/projects/neoray/src/redrawevents.go:76 +0x553e fp=0xc0005b7ab0 sp=0xc0005b7960 pc=0x86e49e
main.(*Editor).update(0xf83c80)
	/home/tbunyk/projects/neoray/src/editor.go:171 +0x2c fp=0xc0005b7ad0 sp=0xc0005b7ab0 pc=0x85838c
main.(*Editor).MainLoop(0xf83c80)
	/home/tbunyk/projects/neoray/src/editor.go:154 +0x617 fp=0xc0005b7cb8 sp=0xc0005b7ad0 pc=0x857f97
main.main()
	/home/tbunyk/projects/neoray/src/main.go:69 +0x411 fp=0xc0005b7f80 sp=0xc0005b7cb8 pc=0x860b71
runtime.main()
	/usr/local/go/src/runtime/proc.go:255 +0x227 fp=0xc0005b7fe0 sp=0xc0005b7f80 pc=0x46e9c7
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc0005b7fe8 sp=0xc0005b7fe0 pc=0x4a0921

goroutine 20 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7ff470104ca0, 0x72)
	/usr/local/go/src/runtime/netpoll.go:229 +0x89
internal/poll.(*pollDesc).wait(0xc00039e198, 0x79b401, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0xbd
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc00039e180)
	/usr/local/go/src/internal/poll/fd_unix.go:402 +0x425
net.(*netFD).accept(0xc00039e180)
	/usr/local/go/src/net/fd_unix.go:173 +0x4a
net.(*TCPListener).accept(0xc0003a6030)
	/usr/local/go/src/net/tcpsock_posix.go:140 +0x45
net.(*TCPListener).Accept(0xc0003a6030)
	/usr/local/go/src/net/tcpsock.go:262 +0x68
net/http.(*Server).Serve(0xc000380000, {0xa35290, 0xc0003a6030})
	/usr/local/go/src/net/http/server.go:3001 +0x5cf
net/http.(*Server).ListenAndServe(0xc000380000)
	/usr/local/go/src/net/http/server.go:2930 +0xbd
net/http.ListenAndServe(...)
	/usr/local/go/src/net/http/server.go:3184
main.start_pprof.func1()
	/home/tbunyk/projects/neoray/src/utils_debug.go:27 +0xfe
created by main.start_pprof
	/home/tbunyk/projects/neoray/src/utils_debug.go:26 +0x2c

goroutine 7 [chan send]:
main.(*NvimProcess).startUI.func2()
	/home/tbunyk/projects/neoray/src/nvimproc.go:245 +0x145
created by main.(*NvimProcess).startUI
	/home/tbunyk/projects/neoray/src/nvimproc.go:239 +0x4d4

chinaese can not display

Please complete the following information:

  • OS or distro: macos 10.15.4
  • neoray version: 0.1.1

Describe the bug
can not display chinaese

init.vim
if exists('g:neoray')
set guifont=Ubuntu\ Mono:h13
NeoraySet CursorAnimTime 0.05
NeoraySet Transparency 1
NeoraySet TargetTPS 60
NeoraySet ContextMenuOn TRUE
NeoraySet BoxDrawingOn TRUE
endif

Neoray does not work with nvim 0.9.2+

nvim 0.9.2 lists as a breaking change:

An adjustment was made to the grid_line event as part of the external UI protocol:
the cells array might now end with a [' ', attr, 0] item with a repeat count of
zero. This is needed by the TUI to disambiguate final spaces from a line from just
clearing the line, which will make a difference when copying text using the terminal
emulators' builtin primary selection support.

External UIs can safely ignore such an empty item and most UIs already handle this fine.
But it could break UIs which has an assert to validate the cell count to be bigger
than zero, or similar.

I tried adding code similar to 468a3f3, but noticed artifacts, for instance create a vertical split and then add new lines to the right-hand split, and I observed the separator to start getting chars overwritten with empty space.

Neoray starts without any messages and does not display window when `init.vim` is malformed

Please complete the following information:

  • OS or distro: Ubuntu
  • neoray version: Neoray v0.1.1

Describe the bug
Given malformed init.vim neoray starts without creating window, or any error messages.

Steps to reproduce

  1. Add into init.vim contents like in example below.
  2. run neoray
  3. No window appears, logs contain only
[TRACE] [NVIM] Neovim version 0.6.0
[TRACE] [NEORAY] Glfw version: 3.3.4 X11 GLX EGL OSMesa clock_gettime evdev
[TRACE] [RENDERER] Opengl Version: 4.6 (Core Profile) Mesa 21.2.6

While nvim shows message:

Error detected while processing /home/tbunyk/.config/nvim/init.vim:
line    1:
E15: Invalid expression: \

It would be nice to have same feedback in neoray, instead of silently refusing to render.

Your neoray config in init.vim

let g:coc_global_extensions = [ \
        "'coc-tsserver' \
                                \ ]

Invisible cursor and strange colors

OS
Ubuntu 20.04

Neoray version
Neoray version: compiled 51f01a12
nvim version:
NVIM v0.8.0-dev+608-g778541067

Problems

  • Sometimes a cursor still invisible
  • Sometimes strange colors:
    image
    instead of
    image
    If return to version 0.1.1 - same problem. Before trying this version, 0.1.1 worked properly.

Steps to reproduce

  1. Create file:
TITLE: qweqwe
END: qweqwe

02-01-2022: text2

01-01-2022: text1
  1. Add to some nvim lua init file:
vim.api.nvim_exec([[
au BufNewFile,BufRead *.txt call Detect_jdoc()
fun Detect_jdoc()
    if getline(1) =~? "^TITLE:" || getline(2) =~? "^TITLE:"
        setlocal filetype=jdoc
    endif
endfun
]], false)
  1. Open the created file by Neoray several times.

Neoray config in init.vim
lua/settings.lua:

vim.api.nvim_exec([[
if exists('g:neoray')
    " Now impossible to disable cursor animation by 'NeoraySet CursorAnimTime 0'
    NeoraySet CursorAnimTime 0.001
    NeoraySet ContextMenuOn false
    NeoraySet WindowSize 100x52
    colorscheme uwu
    set guifont=Go-Mono-Nerd-Font-Complete:h11
endif
]], false)

Debug output (you can generate starting neoray with --verbose option)
The is no difference between Neoray_verbose.log in success and fail

Slightly transparent application window issue

neoray-win64.exe 0.0.7

Custom window transparency level is not set, nor external application is used to change window transparency.

Normal screenshot:
normal screenshot

Screenshot enhanced in image editor to see that windows in background are visible through it:
enhanced screenshot

Troubles with dependencies during installation

I just started with fresh Ubuntu 20.04, and decided to try nvim instead of gvim I used to work in. Now looking for GUI for it.

Having Go already installed, I did

go install github.com/hismailbulut/neoray/src@latest

And got the following fatal errors, one after another fixing them one by one:

X11/Xlib.h: No such file or directory
X11/Xcursor/Xcursor.h: No such file or directory
X11/extensions/Xrandr.h: No such file or directory
X11/extensions/Xinerama.h: No such file or directory
X11/extensions/XInput2.h: No such file or directory
fatal error: GL/glx.h: No such file or directory
Package gtk+-3.0 was not found in the pkg-config search path.

These are fixed by

sudo apt install libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev build-essential libgtk-3-dev

It would be nice to mention this somewhere in documentation about installation.

Now I'm stuck with

# github.com/go-gl/glfw/v3.3/glfw
/usr/bin/ld: cannot find -lXxf86vm

Not sure what that means.

Camera Perspective in 2D Grid Rendering

I'm interested in exploring the possibility of adjusting the camera perspective to simulate different angles in a 2D space. My goal is to achieve a more dynamic visual experience within the existing 2D rendering framework.

After some research and experimentation, I made modifications to the SetProjection in grid_renderer.go, Render method in buffer.go to update the projection matrix using the SetProjection method in the VertexBuffer. I adjusted the fovy (field of view angle) to try to simulate different camera angles.

In grid_renderer.go:

func perspectiveProjection(fovy, aspect, near, far float32) [16]float32 {
    f := 1.0 / float32(math.Tan(float64(fovy/2.0)))
    return [16]float32{
        f / aspect, 0, 0, 0,
        0, f, 0, 0,
        0, 0, (far + near) / (near - far), -1,
        0, 0, (2 * far * near) / (near - far), 0,
    }
}

func (buffer *VertexBuffer) SetProjection(fovy, aspect, near, far float32) {
    projection := perspectiveProjection(fovy, aspect, near, far)
    loc := buffer.shader.UniformLocation("projection")
    gl.UniformMatrix4fv(loc, 1, true, &projection[0])
}

in buffer.go

func (renderer *GridRenderer) Render() {
    // ... (previous code)

    // Calculate perspective parameters based on your requirements
    fovy := float32(math.Pi / 4) // Field of view angle
    aspect := float32(Editor.window.Size().X) / float32(Editor.window.Size().Y) // Aspect ratio
    near := 0.1 // Near clipping plane
    far := 100.0 // Far clipping plane

    renderer.buffer.SetProjection(fovy, aspect, near, far)

    // ... (remaining code)
}

Unfortunately, these changes seem to have no effect, I'm not entirely sure if this is the correct approach or if it's even feasible to adjust the camera perspective in a 2D rendering scenario. I wanted to reach out to the authors to seek your guidance and expertise on this matter.

Questions:

  • Is it possible to adjust the camera perspective in a 2D rendering scenario using Neoray?
  • If so, is the modification I made to the Render method an appropriate way to achieve this goal?
  • Are there specific considerations or limitations I should be aware of when attempting to modify the camera perspective in a 2D space?
  • Any insights or recommendations you can provide would be greatly appreciated. Thank you for your time and assistance!

Stuck during Default Font Loading

Please complete the following information:

  • OS or distro: Windows 8
  • neoray version: 0.0.9

Describe the bug
Doesnt show window. Stuck during loading of default font.

Steps to reproduce

start neoray-win32.exe --verbose

Your neoray config in init.vim (Only the part that concerns neoray!)

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 Win32 WGL EGL OSMesa MinGW
[DEBUG] [NEORAY] Video mode {Width:1920 Height:1080 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Creating window, width: 1152 height: 810
[DEBUG] [NEORAY] Glfw window created successfully.
[DEBUG] [NEORAY] Monitor diagonal: 27.01 dpi: 81.57
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 3.3.0 NVIDIA 471.41
[DEBUG] [RENDERER] Vendor: NVIDIA Corporation
[DEBUG] [RENDERER] Renderer: NVIDIA GeForce GTX 760/PCIe/SSE2
[DEBUG] [RENDERER] GLSL: 3.30 NVIDIA via Cg compiler
[DEBUG] [NEORAY] Loading default font.

Crash on startup

Please complete the following information:

  • OS or distro: Windows 10 x64
  • neoray version: 0.2.5

Describe the bug
The application crashs on startup

Steps to reproduce
Just click on the application .exe

Your neoray config in init.vim (Only the part that concerns neoray!)

Crash log if available (may be generated by neoray after crash)
Neoray_crash.log

Debug output (you can generate starting neoray with --verbose option)
Neoray_verbose.log

Thanks

Detach from terminal?

Hi! Great project!

I often use "neoray" in the terminal (alacritty), which is blocked after startup:

» neoray
[TRACE] [NVIM] Neovim version 0.7.0
[TRACE] [NEORAY] Glfw version: 3.3.4 X11 GLX EGL OSMesa clock_gettime evdev
[TRACE] [RENDERER] Opengl Version: 4.6 (Core Profile) Mesa 22.1.2
[TRACE] [PERFORMANCE] Start time: 141.210204ms
[ERROR] [NEORAY] Assertion Failed: print() function used in release build
Grid.Resize, ID: 1 Rows: 33 Cols: 88
[TRACE] [NEORAY] Regular: UbuntuMono-R.ttf
[TRACE] [NEORAY] Bold Italic: UbuntuMono-BI.ttf
[TRACE] [NEORAY] Italic: UbuntuMono-RI.ttf
[TRACE] [NEORAY] Bold: UbuntuMono-B.ttf
[ERROR] [NEORAY] Assertion Failed: print() function used in release build
Grid.Resize, ID: 1 Rows: 40 Cols: 114
[ERROR] [NEORAY] Assertion Failed: print() function used in release build
Grid.Resize, ID: 1 Rows: 94 Cols: 81

Is it possible to prevent this?

Currently I use a "wrapper" (gvim):

#!/usr/bin/env bash
neoray "$@" > /dev/null 2>&1 &
disown %1

0.0.8: window content drawing and size issue on startup

Minor annoyances after launching 0.0.8:
Window content is not of correct size or position, remaining buffer area is filled with the theme background color; unless - part of window is randomly placed outside of the screen, then that remaining buffer area is white.

Resizing window fixes it.

image

Window vertical resize crash

Please complete the following information:

  • OS or distro: Windows 10 x64
  • neoray version: 0.1.0

Describe the bug
Neoray crashes with error message when using mouse cursor resize to reduce window content size to the height of 1 line or 0.
Sometimes it will succeed resizing to 0 height without crash, but will crash trying to increase the window height from that point.

Steps to reproduce
Drag window border to reduce window height towards 0 height.

lexetSveGi.mp4

Your neoray config in init.vim (Only the part that concerns neoray!)

let s:fontname = 'CascadiaCodePL'
let s:fontsize = 13

execute 'set guifont=' . s:fontname . ':h' . s:fontsize

NeoraySet KeyZoomIn <C-ScrollWheelUp>
NeoraySet KeyZoomOut <C-ScrollWheelDown>

Crash log if available (may be generated by neoray after crash)

NEORAY v0.1.0 Release Crash Report 2021-09-21 19:02:54.0665805 +0000 UTC
Please open an issue in github with this file.
The program is crashed because of the following reasons:
[FATAL] [NEORAY] Assertion Failed: requested resize with zero parameter

goroutine dump:
goroutine 1 [running, locked to thread]:
main.createCrashReport({0xc0000120f0, 0x48})
	D:/a/neoray/neoray/src/logger.go:104 +0x330
main.logMessage(0xc330, 0xc0, {0xc0001379c8, 0x1, 0x8})
	D:/a/neoray/neoray/src/logger.go:168 +0x25a
main.assert(0x5, {0xc000137a48, 0x105df07, 0x7})
	D:/a/neoray/neoray/src/logger.go:184 +0x92
main.(*NvimProcess).requestResize(0x16d32c0, 0x0, 0x50)
	D:/a/neoray/neoray/src/nvimproc.go:548 +0x85
main.CreateWindow.func1(0xc000137ad0, 0x373, 0x1)
	D:/a/neoray/neoray/src/window.go:121 +0xa5
github.com/go-gl/glfw/v3.3/glfw.goFramebufferSizeCB(0x10546e6, 0x373, 0x1)
	C:/Users/runneradmin/go/pkg/mod/github.com/go-gl/glfw/v3.3/[email protected]/window.go:219 +0x4b
github.com/go-gl/glfw/v3.3/glfw._Cfunc_glfwPollEvents()
	_cgo_gotypes.go:1517 +0x4e
github.com/go-gl/glfw/v3.3/glfw.PollEvents()
	C:/Users/runneradmin/go/pkg/mod/github.com/go-gl/glfw/v3.3/[email protected]/window.go:964 +0x17
main.(*Editor).MainLoop(0x16d32c0)
	D:/a/neoray/neoray/src/editor.go:165 +0x38f
main.main()
	D:/a/neoray/neoray/src/main.go:71 +0x296

goroutine 38 [select]:
os/exec.(*Cmd).Start.func2()
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/os/exec/exec.go:449 +0x7b
created by os/exec.(*Cmd).Start
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/os/exec/exec.go:448 +0x8c5

goroutine 39 [syscall, locked to thread]:
syscall.Syscall6(0x7ffd6c432680, 0x5, 0x278, 0xc00049f000, 0x1000, 0xc0001f3ce4, 0x0, 0x0)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/runtime/syscall_windows.go:493 +0xfa
syscall.ReadFile(0x105dbb4, {0xc00049f000, 0x1000, 0x800000}, 0xc0001f3ce4, 0x0)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/syscall/zsyscall_windows.go:1024 +0xbe
syscall.Read(0xc00010ef00, {0xc00049f000, 0x100000000000020, 0x213f1e00008})
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/syscall/syscall_windows.go:380 +0x2e
internal/poll.(*FD).Read(0xc00010ef00, {0xc00049f000, 0x1000, 0x1000})
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/internal/poll/fd_windows.go:427 +0x1b4
os.(*File).read(...)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/os/file_posix.go:32
os.(*File).Read(0xc0001abb08, {0xc00049f000, 0xc0001f3e18, 0x105df07})
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/os/file.go:119 +0x5e
bufio.(*Reader).fill(0xc0004a4000)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadByte(0xc0004a4000)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/bufio/bufio.go:253 +0x2c
github.com/neovim/go-client/msgpack.(*Decoder).Unpack(0xc0004a2050)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/msgpack/unpack.go:164 +0x3d
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve(0xc00001c0d0)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:195 +0x136
github.com/neovim/go-client/nvim.(*Nvim).Serve(0x0)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:53 +0x90
github.com/neovim/go-client/nvim.(*Nvim).startServe.func1()
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:59 +0x25
created by github.com/neovim/go-client/nvim.(*Nvim).startServe
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:58 +0x8f

goroutine 11 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc0001e6c50, 0x39)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/runtime/sema.go:513 +0x146
sync.(*Cond).Wait(0x14f10e0)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/sync/cond.go:56 +0x8c
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).dequeueNotifications(0xc00001c0d0)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:659 +0x5e
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).runNotifications(0xc00001c0d0)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:671 +0x29
created by github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0x125

goroutine 12 [semacquire]:
sync.runtime_SemacquireMutex(0x0, 0x0, 0x0)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/runtime/sema.go:71 +0x25
sync.(*Mutex).lockSlow(0xc0002c00b8)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/sync/mutex.go:138 +0x165
sync.(*Mutex).Lock(...)
	C:/hostedtoolcache/windows/go/1.17.1/x64/src/sync/mutex.go:81
github.com/neovim/go-client/nvim.(*Nvim).Serve(0x1183280)
	C:/Users/runneradmin/go/pkg/mod/github.com/neovim/[email protected]/nvim/nvim.go:51 +0x58
main.(*NvimProcess).startUI.func2()
	D:/a/neoray/neoray/src/nvimproc.go:203 +0x25
created by main.(*NvimProcess).startUI
	D:/a/neoray/neoray/src/nvimproc.go:202 +0x3b4

Debug output (you can generate starting neoray with --verbose option)


NEORAY v0.1.0 Release LOG 2021-09-21 19:03:38.0066273 +0000 UTC
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.5.0
[TRACE] [NEORAY] Glfw version: 3.3.4 Win32 WGL EGL OSMesa MinGW
[DEBUG] [NEORAY] Monitor count: 1 Selected monitor: Generic PnP Monitor
[DEBUG] [NEORAY] Video mode &{Width:1440 Height:2560 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Glfw window created with size 883 662
[DEBUG] [NEORAY] Monitor diagonal: 23.80 pdpi: 136.29 ldpi: 106.00
[DEBUG] [NEORAY] Using logical dpi.
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 3.3.148202 Core Profile Forward-Compatible Context 21.3.1 27.20.15003.1004
[DEBUG] [RENDERER] Vendor: ATI Technologies Inc.
[DEBUG] [RENDERER] Renderer: Radeon RX 5500 XT
[DEBUG] [RENDERER] GLSL: 4.60
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NEORAY] Default font loaded.
[DEBUG] [NVIM] Attached to neovim as an ui client.
[DEBUG] [NEORAY] Requesting deprecated options.
[DEBUG] [NEORAY] Checking user options.
[DEBUG] [NVIM] Option KeyZoomIn is <C-ScrollWheelUp>
[DEBUG] [NVIM] Option KeyZoomOut is <C-ScrollWheelDown>
[DEBUG] [NEORAY] Window is now visible.
[TRACE] [PERFORMANCE] Start time: 594.4498ms
[DEBUG] [NEORAY] Loading font CascadiaCodePL with size 13
[TRACE] [NEORAY] Regular: CascadiaCodePL.ttf
[WARNING] [NEORAY] Font has no bold italic face.
[WARNING] [NEORAY] Font has no italic face.
[WARNING] [NEORAY] Font has no bold face.
[FATAL] [NEORAY] Assertion Failed: requested resize with zero parameter

Font render failure.

Please complete the following information:

  • OS or distro: MacOS
  • neoray version: Head

Describe the bug
Some font failed to render

Steps to reproduce
Can not render emoji
Also some font failed to render:

image
Left: in kitty, same font
Right: neoray

Your neoray config in init.vim (Only the part that concerns neoray!)

vim.api.nvim_set_option('guifont', 'Victor Mono:h14')

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)
[DEBUG] [NVIM] Neovim started with command: nvim --embed
[TRACE] [NVIM] Neovim version 0.6.0
[DEBUG] [NVIM] Attached to neovim as an ui client.
[TRACE] [NEORAY] Glfw version: 3.3.4 Cocoa NSGL EGL OSMesa
[DEBUG] [NEORAY] Monitor count: 1 Selected monitor: Built-in Retina Display
[DEBUG] [NEORAY] Video mode &{Width:1792 Height:1120 RedBits:8 GreenBits:8 BlueBits:8 RefreshRate:60}
[DEBUG] [NEORAY] Glfw window created with size 800 600
[DEBUG] [NEORAY] Monitor diagonal: 15.95 pdpi: 264.98 ldpi: 144.00
[DEBUG] [NEORAY] Using logical dpi.
[DEBUG] [NEORAY] Input callbacks are initialized.
[DEBUG] [RENDERER] Initializing opengl.
[TRACE] [RENDERER] Opengl Version: 4.1 ATI-3.10.22
[DEBUG] [RENDERER] Vendor: ATI Technologies Inc.
[DEBUG] [RENDERER] Renderer: AMD Radeon Pro 5300M OpenGL Engine
[DEBUG] [RENDERER] GLSL: 4.10
[DEBUG] [NEORAY] Loading default font.
[DEBUG] [NEORAY] Default font loaded.
[DEBUG] [NEORAY] Requesting deprecated options.
[DEBUG] [NEORAY] Checking user options.
[DEBUG] [NVIM] Option CursorAnimTime is 0.04
[DEBUG] [NVIM] Option Transparency is 0.95
[DEBUG] [NVIM] Option TargetTPS is 120
[DEBUG] [NVIM] Option ContextMenuOn is true
[DEBUG] [NVIM] Option WindowSize is 120 40
[DEBUG] [NEORAY] Loading font Victor Mono with size 14
[TRACE] [NEORAY] Regular: Victor Mono Regular Nerd Font Complete.ttf
[TRACE] [NEORAY] Bold Italic: Victor Mono Bold Italic Nerd Font Complete.ttf
[TRACE] [NEORAY] Italic: Victor Mono Italic Nerd Font Complete.ttf
[TRACE] [NEORAY] Bold: Victor Mono Bold Nerd Font Complete.ttf

0.0.8: Mouse text selection issues

Please complete the following information:

  • Operating System or distro:
    • Windows 10 x64
    • Arch Linux (X11, i3wm)
  • neoray version:
    • 0.0.8

Describe the bug
When attempting to select characters in normal mode, whole words get selected.

Steps to reproduce

Select text with mouse cursor in normal mode.

Demonstration (top: Neovim running in st terminal emulator, bottom: neoray):
https://user-images.githubusercontent.com/52537705/131246557-f0af1730-11b6-4375-95f5-b71fd3e4a563.mp4

Your neoray config in init.vim

let s:fontname = "CascadiaCodePL"
let s:fontsize = 10

function! AdjustFontSize(amount)
  let s:fontsize = s:fontsize+a:amount
  execute 'set guifont=' . s:fontname . ':h' . s:fontsize
endfunction

call AdjustFontSize(0)

noremap <C-ScrollWheelUp> :call AdjustFontSize(1)<CR>
noremap <C-ScrollWheelDown> :call AdjustFontSize(-1)<CR>
inoremap <C-ScrollWheelUp> <Esc>:call AdjustFontSize(1)<CR>a
inoremap <C-ScrollWheelDown> <Esc>:call AdjustFontSize(-1)<CR>a

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

Neoray cannot load the font.

Please complete the following information:

  • OS or distro: Windows 11
  • neoray version: 0.1.1

Describe the bug
neoray cannot find the font 'Iosevka Slab:h16'. This is the same guifont I use in neovim-qt and fvim.

Steps to reproduce

Your neoray config in init.vim (Only the part that concerns neoray!)

Crash log if available (may be generated by neoray after crash)

Debug output (you can generate starting neoray with --verbose option)

Feature request: CSI u modifiers

In suckless st and iterm2 terminal emulators I can use Ctrl+Alt+H / J / K / L as mappings in Neovim. I use these mappings to resize Neovim panes when running it in these terminal emulators.

" resize splits
nnoremap <silent><C-A-j> :resize +2<cr>
nnoremap <silent><C-A-k> :resize -2<cr>
nnoremap <silent><C-A-l> :vertical resize +4<cr>
nnoremap <silent><C-A-h> :vertical resize -4<cr>

In iterm2 these kind of shortcuts work after enabling this feature: https://iterm2.com/documentation-csiu.html
It seems like something that currently is not available in Neovim Qt or in neoray.

Could support for these mappings be added to neoray?

Crash on C-ScrollWheel* mapping

After adding this code to my init.vim

let s:fontname = "CascadiaCodePL"
let s:fontsize = 10

function! AdjustFontSize(amount)
  let s:fontsize = s:fontsize+a:amount
  let s:guifont = s:fontname . ':h' . s:fontsize
  execute 'set guifont=' . s:guifont
endfunction

call AdjustFontSize(0)

noremap <C-ScrollWheelUp> :call AdjustFontSize(1)<CR>
noremap <C-ScrollWheelDown> :call AdjustFontSize(-1)<CR>
inoremap <C-ScrollWheelUp> <Esc>:call AdjustFontSize(1)<CR>a
inoremap <C-ScrollWheelDown> <Esc>:call AdjustFontSize(-1)<CR>a

and doing C-ScrollWheel* in a new neoray instance, it would exit with this error:
image

Manually calling :set guifont=CascadiaCodePL:h{some number} works fine.

Crash log:

NEORAY v0.0.7 Release Crash Report 2021-08-26 18:40:50.8429361 +0000 UTC
Please open an issue in github with this file.
The program is crashed because of the following reasons:
[FATAL] [NEORAY] [PANIC!] runtime error: invalid memory address or nil pointer dereference

goroutine dump:
goroutine 1 [running, locked to thread]:
main.createCrashReport(0xc000194060, 0x5b)
	D:/a/neoray/neoray/src/logger.go:104 +0x545
main.logMessage(0x100000004, 0xc0005c5730, 0x2, 0x2)
	D:/a/neoray/neoray/src/logger.go:168 +0x27d
main.shutdownLogger()
	D:/a/neoray/neoray/src/logger.go:77 +0xb5
panic(0x1153c60, 0x10b9b50)
	C:/hostedtoolcache/windows/go/1.16.7/x64/src/runtime/panic.go:965 +0x1c7
main.(*FontFace).Resize(0x0, 0xc041100000)
	D:/a/neoray/neoray/src/fontface.go:68 +0x6c
main.(*Font).Resize(0x13163b8, 0x41100000)
	D:/a/neoray/neoray/src/font.go:136 +0x6f
main.(*Renderer).setFontSize(0x13163b8, 0xc041100000)
	D:/a/neoray/neoray/src/renderer.go:78 +0x94
main.(*UIOptions).setGuiFont(0x1316490, 0xc0005ca2e8, 0x11)
	D:/a/neoray/neoray/src/uioptions.go:52 +0x485
main.option_set(0xc0005c6a70, 0x1, 0x1)
	D:/a/neoray/neoray/src/redrawevents.go:110 +0x318
main.handleRedrawEvents()
	D:/a/neoray/neoray/src/redrawevents.go:32 +0x15de
main.(*Editor).update(0x1316260)
	D:/a/neoray/neoray/src/editor.go:168 +0x3a
main.(*Editor).MainLoop(0x1316260)
	D:/a/neoray/neoray/src/editor.go:148 +0x2fc
main.main()
	D:/a/neoray/neoray/src/main.go:69 +0x2a5

goroutine 66 [chan send]:
main.(*NvimProcess).startUI.func2(0x1316260)
	D:/a/neoray/neoray/src/nvimproc.go:141 +0x11b
created by main.(*NvimProcess).startUI
	D:/a/neoray/neoray/src/nvimproc.go:135 +0x30a

Feature suggestion - Chocolatey and Scoop Windows releases

Integrate downloading and putting of Neoray in %PATH% for
Scoop - https://scoop.sh/
Chocolatey - https://chocolatey.org/

Although this may also raise general question about Neoray releases on other platform and Linux distro package repos, it's most notably Microsoft Windows is where I personally find useful having a dedicated nvim GUI client like Neoray available, so it would be useful if I could retrieve Neoray, update it and have bare minimum integration of it using either of the automated Windows program installer tools mentioned above.

Taskbar item text truncated with text in window title bar

Please complete the following information:

  • OS or distro: Windows 10 x64
  • neoray version: 0.1.0

Describe the bug
With set title, when window title length exceeds window title bar width but does not exceed taskbar item width, window title truncation also gets applied to taskbar item. Unsure if this is not a Neovim issue, because NeovimQt behaves exactly the same way.
I have not seen any other Windows program do this (e.g. Notepad in demonstration below does not truncate taskbar item) and consider it not very user friendly.
Demonstration:

HNiTx6edAM.mp4

Taskbar item probably should not get truncated with window title.

Steps to reproduce
Use set title. Resize window so title gets truncated.

Your neoray config in init.vim (Only the part that concerns neoray!)

set title

Crash log if available (may be generated by neoray after crash)
N/A
Debug output (you can generate starting neoray with --verbose option)
N/A

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.