clojure-vim / acid.nvim Goto Github PK
View Code? Open in Web Editor NEWAsynchronous Clojure Interactive Development
Asynchronous Clojure Interactive Development
Thoughts on supporting CLJS?
acid's lazy loading is not doing its thing when I open a Clojure file directly, as a result of this, I'm unable to run things like :AcidRequire
in the first file I open in a project -- it works on files that I open after this.
Steps to reproduce:
lein new something
), then open a repl (cd something; lein repl :headless
)nvim test/src/clojure/test/core.clj
):AcidRequire
or gd
(or autocompletion), it will not work.As a work around, I'm starting nvim and then opening a file from it.
Here is my init.vim, if it helps: https://github.com/miorimmax/nvimrc
I can send a pull request and would appreciate some pointer. How can we enable specifying a port number manually ala $ lein repl :connect 5555
?
Expecting, string literal \d
as result ("\\d"
) in Clojure.
Actually got parsing error, the code evaluated was "\d"
, and \d
is not a valid escape sequence.
My setup:
The project I'm using to try out acid.nvim is https://github.com/daveyarwood/ezzmq. It's a Boot project.
I started an nREPL via boot repl
, then opened a source file in Neovim and immediately got this error:
error caught in async handler '/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid:command:AcidCommand [['Require']]'
Traceback (most recent call last):
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 138, in acid_command
command.call(self, self.context(), *args)
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/commands/__init__.py", line 142, in call
acid.command(payload, handlers)
TypeError: command() missing 1 required positional argument: 'url'
Press ENTER or type command to continue
The error reappears each time I run :e
in the buffer.
I get this when calling AcidRequire:
E5105: Error while calling lua chunk: /home/alee/.vim/bundle/acid.nvim//lua/acid/connections.lua:91: Vim:E117: Unknown function: trim
I just installed Acid today, quite possible I've done something wrong. I'm using Plug.vim (also just switched from Vundle...). I still have Fireplace installed.
Lua 5.1
:version
NVIM v0.3.1-1-g489d32f2b
Build type: RelWithDebInfo
LuaJIT 2.0.5
Compilation: /usr/bin/gcc-5 -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neovim/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I/usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-ecc960f4-8e53-44e6-a8e8-9587ed80f885
call plug#begin('~/.vim/bundle')
Plug 'AndrewRadev/splitjoin.vim'
Plug 'FelikZ/ctrlp-py-matcher'
Plug 'PeterRincker/vim-argumentative'
Plug 'Shougo/neocomplete'
Plug 'avakhov/vim-yaml'
Plug 'bps/vim-textobj-python'
Plug 'chrisbra/NrrwRgn'
Plug 'chrisbra/SudoEdit.vim'
Plug 'christianrondeau/vim-base64'
" Plug 'christoomey/vim-tmux-navigator'
Plug 'clojure-vim/acid.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'elzr/vim-json'
Plug 'eraserhd/parinfer-rust', {'do': 'cargo build --release'}
Plug 'ervandew/supertab'
" Plug 'gastonsimone/vim-dokumentary'
Plug 'godlygeek/tabular'
Plug 'guns/vim-sexp'
Plug 'jceb/vim-textobj-uri'
Plug 'jreybert/vimagit'
" Plug 'junegunn/fzf', {'do': './install --all'}
Plug 'kana/vim-textobj-indent'
Plug 'kana/vim-textobj-user'
Plug 'kien/ctrlp.vim'
Plug 'kien/rainbow_parentheses.vim'
Plug 'mattboehm/vim-accordion'
Plug 'michaeljsmith/vim-indent-object'
Plug 'nanotech/jellybeans.vim'
Plug 'ntpeters/vim-better-whitespace'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/syntastic'
Plug 'sgur/vim-textobj-parameter'
Plug 'sjl/gundo.vim'
Plug 'tpope/vim-abolish'
Plug 'tpope/vim-classpath'
Plug 'tpope/vim-commentary'
" Plug 'tpope/vim-dispatch'
Plug 'tpope/vim-fireplace'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-projectionist'
Plug 'tpope/vim-repeat'
" Plug 'tpope/vim-sexp-mappings-for-regular-people'
Plug 'tpope/vim-speeddating'
Plug 'tpope/vim-surround'
" Plug 'typedclojure/vim-typedclojure'
Plug 'venantius/vim-cljfmt'
Plug 'xenomachina/public', {'rtp': 'vim/'}
Plug 'xolox/vim-misc'
Plug 'xolox/vim-session'
Plug 'lxsli/vim-unimpaired'
" Plug 'lxsli/vim-unstack'
Plug 'lxsli/ftplugins'
call plug#end()
Do you have any suggestions ?
Encountered SyntaxError loading plugin at /home/te/.vim/plugged/acid.nvim/rplugin/python3/acid: can use starred expression only as assignment target (init.
py, line 99)
Traceback (most recent call last):
File "/home/te/.local/lib/python3.4/site-packages/neovim/plugin/host.py", line 131, in _load
module = imp.load_module(name, file, pathname, descr)
File "/usr/lib/python3.4/imp.py", line 245, in load_module
return load_package(name, filename)
File "/usr/lib/python3.4/imp.py", line 217, in load_package
return methods.load()
File "", line 1220, in load
File "", line 1200, in _load_unlocked
File "/home/te/.vim/plugged/acid.nvim/rplugin/python3/acid/init.py", line 99
*handlers, self.get_handler('Log').configure(**self.context())
^
SyntaxError: can use starred expression only as assignment target
remote/host: python3 host registered plugins []
remote/host: generated rplugin manifest: /home/te/.local/share/nvim/rplugin.vim
It isn't clear to me how to use cqp
in a programmatic (i.e. non-interactive) way.
It would be nice if we had a command called something like :AcidEval
that I could call like :AcidEval (+ 1 2 3)
and it would be the equivalent of typing cqp(+ 1 2 3)<CR>
.
Having that would make it a lot easier for us to add custom keybindings to our vimrc's that do arbitrary things useful to our individual workflows, like refresh, e.g. nmap <leader>rr :AcidEval (refresh)<CR>
This is similar to #35, but the error message looks like potentially a different issue.
When I put my cursor over a symbol and press <C-]>
to jump to declaration, I get this error:
error caught while executing async callback:
NvimError(b"Vim:E5108: Error while calling lua chunk for luaeval(): ...vim/bundle/acid.nvim//lua/acid/middlewares/go_to.lua:13: Vim(let):error caught in request handler '/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid:function:AcidFindFileInPath [[]]':",)
Traceback (most recent call last):
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in <lambda>
nvim.async_call(lambda: handler_impl(msg, wc, key))
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 21, in impl
nvim.funcs.luaeval(lua_cmd, msg)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 299, in call
return self.request('nvim_call_function', name, args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 182, in request
res = self._session.request(name, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/msgpack_rpc/session.py", line 102, in request
raise self.error_wrapper(err)
pynvim.api.nvim.NvimError: b"Vim:E5108: Error while calling lua chunk for luaeval(): ...vim/bundle/acid.nvim//lua/acid/middlewares/go_to.lua:13: Vim(let):error caught in request handler '/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid:function:AcidFindFileInPath [[]]':"
the call was requested at
File "/usr/lib/python3.5/threading.py", line 882, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "../../.vim/bundle/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 68, in run
callback(incoming, self, key)
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in handler
nvim.async_call(lambda: handler_impl(msg, wc, key))
K appears to work but only for some functions, and 'gu' opens up a quickfix window that shows nothing for any functions. Am I missing something obvious?
Typing into my buffer and eval-ing with cpp
is great, but I'm finding myself wanting an equivalent to Fireplace's cqp
(FireplacePrompt), which lets you enter a form in the command area and then shows you the result right there in the command area, without affecting your buffer at all.
:call AcidInsertEval()
almost provides this, except that it inserts the result into the buffer instead of showing it to you in the command area.
:call AcidInsertEval()
also runs within the user=>
namespace, which is non-ideal, I think, because I usually want the prompt to have the same context as the buffer I'm editing. What would be better is if this REPL prompt were connected to the same namespace that you have currently required / the file you're editing.
Wishlist:
Make cpaw
(evaluate around word) work.
(def x 2)
, put my cursor on one of the parens, and type cpp
to evaluate the form, defining x
in the current namespace.x
, and I forget what the value of x
is.x
and see its value.cpp
only works at the level of a form, but doesn't work on a symbol. I tried cpaw
and cpiw
(eval "inside word," "around word" and neither of those did the trick.Provide a visual mode binding that sends the current selection to the REPL.
x
to the REPL, one thing I kept wanting to work was to highlight x
in visual mode and press some keybindng to send to the REPL.cpp
? It's sort of ambiguous though, because you could visually select more than one form... Maybe displaying it in the command area would be acceptable?Since updating recently, I am no longer seeing evaluation results in the buffer. Running :AcidRequire
and then using cpp
to evaluate a form has no visible effect.
I noticed that when I press cqp
to get the prompt, the namespace is incorrect. In this particular project, I have a frontend
folder and a backend
folder, and acid appears to be incorrectly prefixing the namespace with backend.
:
;; should be `geir-backend.main-class`
backend.geir-backend.main-class=>
From /tmp/acid-log-handler.log
:
2019-03-25 10:58:58,436 - [acid.nvim :DEBUG] - fpath is None
2019-03-25 10:58:58,439 - [acid.nvim :DEBUG] - Hitting cache for ns 'backend.geir-backend.main-class'
2019-03-25 10:58:58,443 - [acid.session :INFO] - sending data -> {'id': '46e7cf434bb8400da8c54f61634ade04', 'op': 'eval', 'code': "(require '[backend.geir-backend.main-class :reload :all])"}
2019-03-25 10:58:58,516 - [acid :INFO] - {'session': '502fc4e3-4dd6-48c8-aa92-fc22efde7c2f', 'root-ex': 'class java.io.FileNotFoundException', 'id': '46e7cf434bb8400da8c54f61634ade04', 'ex': 'class java.io.FileNotFoundException', 'status': ['eval-error']}
2019-03-25 10:58:58,520 - [acid.session :INFO] - stopped watching key 46e7cf434bb8400da8c54f61634ade04-d557c178c25946b6aa8c6ae79f3de6a9-watcher
2019-03-25 10:58:58,522 - [acid :INFO] - {'id': '46e7cf434bb8400da8c54f61634ade04', 'session': '502fc4e3-4dd6-48c8-aa92-fc22efde7c2f', 'out': '\x1b[1;31mjava.io.FileNotFoundException\x1b[m: \x1b[3mCould not locate backend/geir_backend/main_class__init.class, backend/geir_backend/main_class.clj or backend/geir_backend/main_class.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.\x1b[m\n'}
2019-03-25 10:58:58,524 - [acid :INFO] - {'status': ['done'], 'id': '46e7cf434bb8400da8c54f61634ade04', 'session': '502fc4e3-4dd6-48c8-aa92-fc22efde7c2f'}
2019-03-25 10:58:59,939 - [acid.nvim :DEBUG] - fpath is None
2019-03-25 10:58:59,943 - [acid.nvim :DEBUG] - Hitting cache for ns 'backend.geir-backend.main-class'
2019-03-25 10:58:59,947 - [acid.session :INFO] - sending data -> {'ns': 'backend.geir-backend.main-class', 'id': '9439db61023a4c2aa6db6c36b93c2cbc', 'op': 'eval', 'code': '(def stop-server! (constantly false))'}
2019-03-25 10:59:00,008 - [acid :INFO] - {'status': ['namespace-not-found', 'done', 'error'], 'ns': 'backend.geir-backend.main-class', 'id': '9439db61023a4c2aa6db6c36b93c2cbc', 'session': '435fa752-561c-4403-ae00-6a7d9657cc54'}
2019-03-25 10:59:00,010 - [acid.session :INFO] - stopped watching key 9439db61023a4c2aa6db6c36b93c2cbc-b9cc3943c497474db87c2f381dd63996-watcher
2019-03-25 10:59:00,019 - [acid :INFO] - {'status': ['done'], 'id': '9439db61023a4c2aa6db6c36b93c2cbc', 'session': '435fa752-561c-4403-ae00-6a7d9657cc54'}
I tried doing the same thing in another project with a "standard" Clojure folder hierarchy, and there is no problem, so this appears to be a bug where acid uses the file path to determine the namespace name. I think it should probably parse the ns
declaration at the top of the file instead?
I'm getting this error everytime I open a file. I've tried removing and reinstalling the plugin. Any idea what this could be?
This is just a little thing I noticed where the experience could be a bit nicer:
If I don't have a REPL running, and I run :AcidRequire
, I get this uncaught error:
E5105: Error while calling lua chunk: /home/dave/.vim/bundle/acid.nvim//lua/acid/core.lua:31: Unexpected type
It would be nice if acid could recognize this scenario and say "No REPL found" or something.
Is it possible to use this with boot rather than leiningen?
I'm trying to install the latest acid.nvim but can't for the life of me get the plugin to install.
x acid.nvim:
Exit status: 1
I can press R to retry which claims that it works, but still in :CheckHealth
there is:
## Remote Plugins
- WARNING: "acid.nvim" is not registered.
I can't find a way to debug the error any further (not good at all in vimscript).
I have python3 and pynvim installed:
## Python 3 provider (optional)
- INFO: `g:python3_host_prog` is not set. Searching for python3 in the environment.
- INFO: Executable: /usr/local/bin/python3
- INFO: Python version: 3.6.5
- INFO: pynvim version: 0.3.2
- OK: Latest pynvim is installed.
Other version info:
:version
NVIM v0.3.4
Build type: Release
LuaJIT 2.0.5
After updating today, I get the following error when I run :AcidRequire
:
Error detected while processing :
E5105: Error while calling lua chunk: ...me/dave/.vim/bundle/acid.nvim//lua/acid/features.lua:88: Vim(let):no request handler registered for "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid:function:AcidGetNs"
Probably same as #21. Acid should tell you those other plugins are required and preferably how to fix the issue, rather than falling on its sword. Also the homepage should tell you to install these things.
(defn serialize-kv
[k v]
(str (->camelCaseString k) ": " (selmer-serialize v)))
;; A map containing `:ser-as :params`
(defmethod selmer-serialize :params
[value]
(->> (dissoc value :ser-as)
(map #(apply serialize-kv %))
(str/join ", ")))
If I use gd
on serialize-kv
near the bottom, running :AcidEval 5
no longer returns a response. No :messages
.
K
also doesn't work, though at least it doesn't kill eval.
I'm trying to load documentation (using K
) but a error is raised.
I followed the install steps on README, I don't know what I am missing :(
error caught while executing async callback:
KeyError('name',)
Traceback (most recent call last):
File "/home/daniel/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/handlers/__init__.py", line 78, in <lambda>
nvim.async_call(lambda: on_handle(msg, wc, key))
File "/home/daniel/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/handlers/doc.py", line 17, in on_handle
name = msg['name']
KeyError: 'name'
the call was requested at
File "/usr/lib/python3.6/threading.py", line 884, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "../../.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 68, in run
callback(incoming, self, key)
File "/home/daniel/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/handlers/__init__.py", line 78, in handler
nvim.async_call(lambda: on_handle(msg, wc, key))
Press ENTER or type command to continue
I've grown quite used to using ctags to manage "go to definition," to the extent that I prefer it over nREPL-based "go to definition," even if nREPL-based "go to definition" is more precise. The key thing is that I often edit Clojure code without being connected to a REPL, and I need "go to definition" to work in those moments. ctags allow me to do that in a "good enough" sort of way.
Would it be feasible to add something like a g:acid_disable_go_to_definition
, which makes acid not remap <C-]>
?
I see that there is a g:acid_no_default_keymappings
, but that's not ideal because I would then need to maintain my own set of acid keybindings (for everything else acid provides) identical to the defaults, and keep up with any changes, etc. instead of the plugin ensuring that the keybindings stay up to date with the implementations.
python3-rplugin-host: Async request caused an error:
Error executing lua: ...s/github.com/clojure-vim/acid.nvim/lua/acid/features.lua:150: bad argument #1 to 'ipairs' (table expected, got nil)
Happens for me when using K
on anything. I'm sure there's a debugging step I need to do first? ๐
When I evaluate a form that throws an error, e.g. (/ 1 0)
, I get the following error:
error caught while executing async callback:
NvimError(b'Vim:E5108: Error while calling lua chunk for luaeval(): ...bundle/acid.nvim//lua/acid/middlewares/clipboard.lua:17: Unexpected type',)
Traceback (most recent call last):
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in <lambda>
nvim.async_call(lambda: handler_impl(msg, wc, key))
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 21, in impl
nvim.funcs.luaeval(lua_cmd, msg)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 299, in call
return self.request('nvim_call_function', name, args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 182, in request
res = self._session.request(name, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/msgpack_rpc/session.py", line 102, in request
raise self.error_wrapper(err)
pynvim.api.nvim.NvimError: b'Vim:E5108: Error while calling lua chunk for luaeval(): ...bundle/acid.nvim//lua/acid/middlewares/clipboard.lua:17: Unexpected type'
the call was requested at
File "/usr/lib/python3.5/threading.py", line 882, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "../../.vim/bundle/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 68, in run
callback(incoming, self, key)
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in handler
nvim.async_call(lambda: handler_impl(msg, wc, key))
Then I see the following written to the virtualtext:
(/ 1 0) ;; => ^[[1;31mjava.lang.ArithmeticException^[[m: ^[[3mDivide by zero^[[m\n
Some ideas:
It might be nice to strip out the ANSI color codes in the virtualtext so that the message is easier to read.
It would be really great if the stacktrace were easily accessible somehow.
:AcidShowError
command that I could run with my cursor over the line that produced the exception?:AcidShowLastError
that would show you *e
?
:call AcidInsertEval()
and then evaluating *e
, but that just inserted nil
into my buffer.Not sure if I did something wrong on setup, but when trying to execute :AcidRequire clojure.string
I'm getting the following error:
error caught in async handler '/Users/aterribili/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid:function:AcidSendNrepl [[{'code': "(find-ns 'async-clj-highlight)", 'op': 'eval', 'id': '4200af14832b448181b47732df563405'}, 'VimFn'
, 'AsyncCljHighlightPrepare']]'
Traceback (most recent call last):
File "/Users/aterribili/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/__init__.py", line 82, in acid_eval
success, msg = send(self.session_handler, url, [handler], payload)
File "/Users/aterribili/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/session.py", line 74, in send
session.add_atomic_watch(url, msg_id, handler, matcher)
File "/Users/aterribili/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/session.py", line 43, in add_atomic_watch
conn = self.get_or_create(url)
File "/Users/aterribili/.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/session.py", line 27, in get_or_create
conn = nrepl.connect(url)
File "../../.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 129, in connect
return f(uri)
File "../../.local/share/nvim/plugged/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 31, in _bencode_connect
s = socket.create_connection(uri.netloc.split(":"))
File "/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 707, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 748, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
After the port to lua, I was able to install acid, run a REPL in another terminal, and then use it from Neovim by running :AcidRequire
and then eval-ing forms with cpp
.
However, when I put my cursor over a symbol and press K
to look up the docs, I get this error:
error caught while executing async callback:
NvimError(b"Vim:E5108: Error while calling lua chunk for luaeval(): ...me/dave/.vim/bundle/acid.nvim//lua/acid/features.lua:120: attempt to concatenate field 'name' (a nil value)",)
Traceback (most recent call last):
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in <lambda>
nvim.async_call(lambda: handler_impl(msg, wc, key))
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 21, in impl
nvim.funcs.luaeval(lua_cmd, msg)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 299, in call
return self.request('nvim_call_function', name, args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/api/nvim.py", line 182, in request
res = self._session.request(name, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pynvim/msgpack_rpc/session.py", line 102, in request
raise self.error_wrapper(err)
pynvim.api.nvim.NvimError: b"Vim:E5108: Error while calling lua chunk for luaeval(): ...me/dave/.vim/bundle/acid.nvim//lua/acid/features.lua:120: attempt to concatenate field 'name' (a nil value)"
the call was requested at
File "/usr/lib/python3.5/threading.py", line 882, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "../../.vim/bundle/acid.nvim/rplugin/python3/acid/nrepl/__init__.py", line 68, in run
callback(incoming, self, key)
File "/home/dave/.vim/bundle/acid.nvim/rplugin/python3/acid/__init__.py", line 38, in handler
nvim.async_call(lambda: handler_impl(msg, wc, key))
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.