smolck / uivonim Goto Github PK
View Code? Open in Web Editor NEWFork of the Veonim Neovim GUI
License: GNU Affero General Public License v3.0
Fork of the Veonim Neovim GUI
License: GNU Affero General Public License v3.0
startup show this error
[Window Title]
Error
[Main Instruction]
A JavaScript error occurred in the main process
[Content]
Uncaught Exception:
Error: connect ENOENT \\.\pipe\veonim-instanceb9cbeffd-c681-4467-98a4-f544b4ce7601-sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1142:16)
menu
) entries, with consistent alignment of all cells (either centered or -- better? -- top-aligned)Mouse just doesn't seem to do anything.
No clicks, no scrolling. Built from master at c85671e on M1Max, built with latest brew install neovim --HEAD
.
Is there some special config I should be adding/removing, or some hints on what I should look at?
Maybe have some sort of an API like this:
require'uivonim'.setup_statusline {
{}; -- Left components in here
{}; -- Middle components in here
{}; -- Right components in here
}
One question: how to go about this once ext_statusline is implemented in neovim?
cc: @tjdevries, let me know if you would prefer a different API style
As discussed in #99 commands such as :Uivonim nc
and :Uivonim explorer
don't run when in WSL. Attached is the full developer console log but no errors seem to come up when trying to run the commands.
Interesting to note that the tab complete works for Uivonim
but wont complete any of the arguments eg nc
or explorer
. I have confirmed that these work with my windows config but are not working when passing the --wsl
flag.
I was thinking about doing some experiments on GUI-based NeoVim implementations, and I was thinking if you do have somekind of "webview" API similar to NyaoVim (https://github.com/rhysd/NyaoVim#ui-plugin-examples, for example).
If so, is there any plug-in making use of it?
Hi, is there a way to zoom in and out? like Ctrl +
and Ctrl -
or Ctrl Shift -
which is the usually behavior on terminal or even in most GUI
editors.
Hello, I use Windows 11 pro, I downloaded through scoop uivonim and immediately upon entering I get this error:
A JavaScript error occurred in the main process
Uncaught Exception:
Error: connect ENOENT
ed8f-44f3-a2e4-1 cd 14cd48a85-sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net: 1142: 16)
A well-conceived version, I hope the author can come back and update
Currently, text rendering seems to be ok only for specific font-sizes. Examples:
The rendering is probably not handling non-integer pixel value incorrectly. It should probably round them to the neared integer value. h16 works because 16 / 1.333333.. == 12
(point to pixel conversion) but other values dont, eg 15 / 1.33333... == 11.25
.
Edit: this seems to contain decent hints how to improve things: https://stackoverflow.com/questions/25956272/better-quality-text-in-webgl
Hello! I have been keeping my eye on the project for a while now and had very high hopes from it as it would've been the perfect editor for me.
Can you please confirm the project status ?
Dead keys are keys that emit special modifier events that can modify certain (but not all) subsequent keys. For example, on a German keyboard layout, these are ´
, backtick, ^
, and ~
, and entering ´
followed by a
outputs á
(while a second ´
or a space outputs a literal ´
).
These keys currently don't work in the main text entry (either for composition, literal output, or as normal mode mappings). They do work in the external command line, though (which uses system input).
List of things to expose a Lua API for (not exhaustive list):
:Uivonim files
, :Uivonim grep-word
, etc.)runtime/lua
, see #1)(row, col)
positions? Kind of like :Uivonim nc
but for anything.Should provide generic API usable from Lua plugins (core LSP, telescope.nvim, snippets.nvim).
Start with:
src/components/*.ts
to reduce overlap and allow external functions to hook into the former.When typing in a :terminal
buffer, the cursor jumps back to a previous character on every keystroke (including cursor movement and backspace).
I use Iosevka as my code font, It seems that uivonim can not render it welcl, I am not sure who cause this problem.
the uivoim colorsheme is amazing. i would like to add it to my neovim colorschemes
Someone had to ask! It would be cool. :)
The build instructions don't work on Windows and manually running the commands (without node scripts) errors out.
Automatic building can be added to the current GH actions workflow.
The builtin statusline has indicators for git branches and changes, but these are based on the current directory, not the directory of the currently opened file. (To see this, start veonim from its own repo and then :e dir/file
-- the repo is still uivonim's; you explicitly need to :cd dir
to update the git information.)
I'm currently on MacOS 11.1 and the key repeat isn't working: holding a key only sends a single char event. Not a big deal, it's like a "hardcore mode" built in, but some users might find it useful :)
Keep up the great work!
ATM highlighting is pretty broken, where colors can be changing all the time, change underneath the cursor; overall they just don't render correctly (except for :colorscheme veonim
?). It seems dependent on the colorscheme, but I'm not sure of the exact cause. Removing the colorizer (src/workers/neovim-colorizer.ts
) didn't fix it apparently, nor did commenting out most of src/services/colorizer.ts
(which was/is a temporary fix for some errors leftover from the colorizer remove).
uivonim looks awesome!
Does support something like --server=hostname:port
in neovim-qt to connect to a remote neovim session?
Thanks!
Mappings with <A-S-x>
don't work.
Get following error message when using :e
on the neovim README.md
:
Error detected while processing OptionSet Autocommands for "*":E12: Command not allowed from exrc/vimrc in current dir or tag search. Press ENTER or type command to continue
The problem is that I get this error message regardless of which folder I use it from. I'm using the latest Appimage version and tried moving around the executable but the issue persist. This problem doesn't exists on nightly neovim.
@Breja Is there any particular reason why you didn't use node-client for the messaging/msgpack-rpc side of veonim? If not I might consider switching to that if it's feasible, although I'm not sure; thoughts?
I think after my screen turns off, and I come back to my laptop, all the rendering is gone. I mean, the editor area is blank. I still see the custom UI stuff on the bottom and top edges though, just nothing happens in the middle.
Have you experienced this?
Would it be possible/how hard would it be to hook this up to Neovim running in WSL. I have my whole config in the WSL side of things and would love to have this app running on the windows side.
Not sure if this covered by #2 or not so I thought I'd check. If its possibly a good first issue I would be willing to have a crack at it too 😊
I’m trying to build master
so that I can have a native arm64 build, and it’s not working. My current Neovim version is from Homebrew (NVIM v0.5.1, Build type: Release, LuaJIT 2.1.0-beta3). My default node.js is also the Homebrew node.js, currently at v16.10.0.
nom i
produces a diff in package-lock.json
:
diff --git i/package-lock.json w/package-lock.json
index bf1214ee2011..6c80d17b466c 100644
--- i/package-lock.json
+++ w/package-lock.json
@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
+ "name": "uivonim",
"version": "0.28.0",
"license": "AGPL-3.0-only",
"dependencies": {
npm run package
works and produces a .app
and .dmg
file. There’s one error for which I added stats: { errorDetails: true }
and see
Critical dependency: the request of a dependency is an expression
at CommonJsRequireContextDependency.getWarnings (/Users/austin/mess/2021/39/uivonim/node_modules/webpack/lib/dependencies/ContextDependency.js:82:18)
at Compilation.reportDependencyErrorsAndWarnings (/Users/austin/mess/2021/39/uivonim/node_modules/webpack/lib/Compilation.js:2685:24)
at /Users/austin/mess/2021/39/uivonim/node_modules/webpack/lib/Compilation.js:2293:28
at _next2 (eval at create (/Users/austin/mess/2021/39/uivonim/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
at eval (eval at create (/Users/austin/mess/2021/39/uivonim/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:52:1)
at /Users/austin/mess/2021/39/uivonim/node_modules/webpack/lib/FlagDependencyExportsPlugin.js:403:11
at /Users/austin/mess/2021/39/uivonim/node_modules/neo-async/async.js:2830:7
at Object.each (/Users/austin/mess/2021/39/uivonim/node_modules/neo-async/async.js:2850:39)
at /Users/austin/mess/2021/39/uivonim/node_modules/webpack/lib/FlagDependencyExportsPlugin.js:368:18
at /Users/austin/mess/2021/39/uivonim/node_modules/neo-async/async.js:2830:7
@ ./src/renderer/index.ts 9:13-39
When I run uivonim (open dist/mac-arm64/uivonim.app
), I get the following result:
The message is that app/runtime/uivonim.vim
cannot be loaded; the file is in Contents/Resources/app/build/runtime/uivonim.vim
.
Uncaught Exception:
Error: Error making request to nvim_get_hl_by_name
at NeovimClient.request (/Users/austin/mess/2021/39/uivonim/dist/mac-arm64/uivonim.app/Contents/Resources/app/node_modules/neovim/lib/api/Base.js:75:23)
at NeovimClient.getHighlightByName (/Users/austin/mess/2021/39/uivonim/dist/mac-arm64/uivonim.app/Contents/Resources/app/node_modules/neovim/lib/api/Neovim.js:261:21)
at /Users/austin/mess/2021/39/uivonim/dist/mac-arm64/uivonim.app/Contents/Resources/app/build/main/workers/instance.js:53:77
at MessagePort.<anonymous> (/Users/austin/mess/2021/39/uivonim/dist/mac-arm64/uivonim.app/Contents/Resources/app/build/main/workers/messaging/worker-client.js:49:24)
at MessagePort.[nodejs.internal.kHybridDispatch] (internal/event_target.js:398:41)
at MessagePort.exports.emitMessage (internal/per_context/messageport.js:18:26)
If I make the following modification:
diff --git i/src/main/core/master-control.ts w/src/main/core/master-control.ts
index ad01947b9344..3909440d87c2 100644
--- i/src/main/core/master-control.ts
+++ w/src/main/core/master-control.ts
@@ -39,7 +39,7 @@ const spawnNvimInstance = (
useWsl: boolean,
nvimBinary?: string
) => {
- const runtimeDir = resolve(__dirname, '..', '..', '..', 'runtime')
+ const runtimeDir = resolve(__dirname, '..', '..', 'runtime')
const args = [
'--cmd',
`let $PATH .= ':${runtimeDir}/${process.platform}' | let &runtimepath .= ',${runtimeDir}'`,
This is what shows up:
So there’s a problem with the build that’s easily fixed.
What I can’t figure out is how to stop the developer panel from opening. Suggestions?
On MacOS Catalina, after copying to the Applications directory, the app can be successfully run using open -a uivonim
in the terminal.
If you try to launch the application by double clicking it in Finder, or through a launcher like Spotlight or Alfred, it will first ask for a bunch of permissions it shouldn't need, and then get stuck.
Here are the unnecessary permissions it requests:
It also requests permission to accept incoming network connections.
And here is the state it gets stuck in:
In this state there is no cursor, and it will not respond to any form of input. You cannot type : to enter a command or open a file.
Migrate to Hyperapp v2 as v1 is no longer maintained.
Resources:
oncreate
is used extensively)I’m using the arm64 build I made as discussed in #411; I can’t seem to open it from the command-line with parameters.
Neither of these works:
> open -a uivonim chat.md
> /Applications/uivonim.app/Contents/MacOS/uivonim chat.md
I would expect the file chat.md
to be opened; it is not. As I have startify
in my configuration, I see that (which should not be the case).
Eventually, it would be useful for there to be a command (:Uivonim install-helper
) that installs a helper script (similar to code
for VScode).
The script for code
is this:
#!/usr/bin/env bash
#
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
function realpath() { python -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0"; }
CONTENTS="$(dirname "$(dirname "$(dirname "$(dirname "$(realpath "$0")")")")")"
ELECTRON="$CONTENTS/MacOS/Electron"
CLI="$CONTENTS/Resources/app/out/cli.js"
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "$@"
exit $?
The rough equivalent of that script would result in this: /Applications/uivonim.app/Contents/MacOS/uivonim /Applications/uivonim.app/Contents/Resources/app/build/main/main.js chat.md
, which also doesn’t work. Changing the command to include ELECTRON_RUN_AS_NODE=1
fails:
> ELECTRON_RUN_AS_NODE=1 /Applications/uivonim.app/Contents/MacOS/uivonim /Applications/uivonim.app/Contents/Resources/app/build/main/main.js chat.md
node:internal/modules/cjs/loader:937
throw err;
^
Error: Cannot find module 'electron'
Require stack:
- /Applications/uivonim.app/Contents/Resources/app/build/main/main.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:934:15)
at Module._load (node:internal/modules/cjs/loader:779:27)
at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
at Module.require (node:internal/modules/cjs/loader:1006:19)
at require (node:internal/modules/cjs/helpers:93:18)
at Object.<anonymous> (/Applications/uivonim.app/Contents/Resources/app/build/main/main.js:3:17)
at Module._compile (node:internal/modules/cjs/loader:1110:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1140:10)
at Module.load (node:internal/modules/cjs/loader:982:32)
at Module._load (node:internal/modules/cjs/loader:823:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Applications/uivonim.app/Contents/Resources/app/build/main/main.js'
]
}
First thing I noticed is that when I open uivonim I have nvim running at 100% CPU.
The first thing that jumped is that it spent a lot of time in build_stl_str_hl
, the function that renders the statusline. I disabled the code in my config doing that, and the CPU usage dropped to ~70-80%, so any vimscript for the statusline needs to be disabled.
After inspection, it seems that neovim is doing A LOT of win_update()
even though I'm sitting still and touching nothing. When there isn't any user input, neovim shouldn't be doing anything! Maybe is there something in uivonim continuously pinging neovim? Here are a few backtraces from interrupting the running process at random moments:
Using Manjaro Architect build. Installation from YAY (uivonim-git package).
Impossible to type "<" symbol in INSERT mode. ">", on the other hand, works fine. Regular console neovim
works fine with "<". No plugins and no additional configuration provided in init.vim
.
Hello smolck, thanks for your contribution to such an awesome project!
I made a package script for ArchLinux and upload it to AUR, just a notify, nothing else :-), B.T.W. I will add it to @archlinuxcn soon.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.