summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/autoload/provider/node.vim
AgeCommit message (Collapse)AuthorFiles
2026-04-12feat(provider): support bun as node.js provider #38517Owen1
Problem: Neovim's Node.js provider does not support the Bun package manager. PR #26829 attempted to add this but used a hardcoded path and was abandoned. Solution: - Use `bun pm bin -g` to dynamically locate the global binary directory. - Update `health.lua` to recognize bun installations.
2025-03-29fix(provider): misleading :checkhealth if user sets ↵Sathya Pramodh1
g:loaded_python3_provider=1 #32696 Problem: :checkhealth shows a confusing message if user sets g:loaded_python3_provider=1. Solution: - Show a warning if that var is set to 1. - Update provider modules to default to 0. Any user code that is checking for 1, is like already broken because these may be set to 2.
2023-03-07refactor(runtime): use vim.version to compare versions #22550Justin M. Keyes1
TODO: Unfortunately, cannot (yet) use vim.version for tmux version comparison, because `vim.version.parse(…,{strict=false})` does not coerce tmux's funny "tmux 3.3a" version string. https://github.com/neovim/neovim/blob/6969d3d7491fc2f10d80309b26dd0c26d211b1b3/runtime/autoload/provider/clipboard.vim#L148
2022-12-01feat(provider): add support for Yarn node modules on Windows (#21246)Charles Nguyen1
2022-08-01feat(node): add pnpm support #19461Percy Ma1
2021-05-07checkhealth: ignore 'wildignore' when seeking executables (#14495)Marco Hinz1
Certain values of 'wildignore', .e.g `*/node_modules/**`, would make the provider checks not find the right executables. Fixes https://github.com/neovim/neovim/issues/14388
2020-09-05provider: align all foo#Detect() functions #12839Justin M. Keyes1
Problem: ruby#Detect() and node#Detect() don't return a [prog, err] pair which means callers must special-case them. Solution: align their return signatures with the perl/pythonx providers.
2019-12-24system(), jobstart(): raise error on non-executable #11234Daniel Hahler1
* tv_to_argv: error when cmd is not executable Callers always assume that emsg was emitted: - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202 * test/functional/provider: display reason from missing_provider * provider#node#Detect: skip / handle non-existing node executable
2019-08-04provider: g:loaded_xx_provider=2 means "enabled and working"Justin M. Keyes1
Value of 1 cannot be used, because users might set that in their vimrc to _disable_ a provider, which would confuse :checkhealth and has().
2019-08-04provider: decide status by g:loaded_xx_providerJustin M. Keyes1
2019-08-04provider: let providers decide their statusRui Abreu Ferreira1
Instead of deciding provider status in eval_has_provider, move the decision to the provider Vim scripts. Previously, provider loading worked as follows: 1. eval_has_provider() verified provider availability by searching for the provider#providername#Call function and cached this verificaion as a static variable for some providers 2. providers short-circuited on loading to prevent the definition of the Call function (with the exception of the node provider that did not) This commit changes the expected interface between nvim and its providers to facilitate provider reloading, by splitting the verification of the provider from the availability of the Call function. eval_has_provider() now checks for a provider#providername#enabled variable. It is up to the provider script to set this to 0 or 1 accordingly. eval_call_provider() remains unchanged. All providers hosting a Call function were updated to respect this. The clipboard provider now has a Reload function to reload the provider.
2018-12-05provider/lang: expand() g:foo_host_prog (#9312)Justin M. Keyes1
Before this commit, if user does this: let g:node_host_prog = '~/.nvm/versions/node/v11.3.0/bin/neovim-node-host' the "~/" is not expanded to user's home directory. `:help g:ruby_host_prog` suggests a path with "~/" so technically we already claimed to support this. closes https://github.com/neovim/node-client/issues/102
2018-10-31provider/nodejs: handle missing stdoutJustin M. Keyes1
ref https://github.com/neovim/neovim/issues/9001#issuecomment-434802234
2018-10-22provider/nodejs: fix npm,yarn detectionJan Edmund Lazo1
For each package manager, 1. Check if they are executable before starting a job. 2. Check if the job opts are set before checking the job status TODO: Validate the job id. Prioritize npm because it's faster than yarn. Reindent the code to 2-space indent.
2018-10-18provider/nodejs: Simultaneously query npm and yarn #9054Mahmoud Al-Qudsi1
ref #9001 Instead of serially querying npm and yarn for neovim, start both as a job and then wait for a successful result from either.
2018-07-04provider/node: npm --loglevel silent (#8682)Takuya Matsuyama1
closes #8674 npm log level may cause unexpected output.
2018-06-17checkhealth: node.js: also search yarn #8528Ahmed El Gabri1
- "neovim" package may be installed with yarn. Check yarn if npm fails. - Use filereadable() instead of glob(). closes #8552
2018-03-15node/provider: support g:node_host_prog #8135chemzqm1
2018-02-16Add provider#Poll() to handle starting and polling the providerJames McCoy1
2018-02-16provider: Safely access job.stderr in #RequireJames McCoy1
If `jobstart()` fails, then the subsequent `rpcrequest()` will throw due to an invalid channel id. This causes `job.stderr` not to exist, so we throw another exception when trying to dump the job's stderr. Error detected while processing function remote#define#AutocmdBootstrap[1]..remote#host#Require[10]..provider#pythonx#Require: line 22: E716: Key not present in Dictionary: stderr This obfuscates the actual problem.
2017-12-27health.vim: remove :CheckHealth commandJustin M. Keyes1
For back-compat, :CheckHealth runs :checkhealth. But don't define :CheckHealth explicitly, it adds noise to wildmenu completion. Completion of healthchecks doesn't yet work with :checkhealth, this is a regression but it needs to be implemented for :checkhealth rather than keeping :CheckHealth around.
2017-12-23provider: delete vimL stderr collector, now that it exists builtinBjörn Linse1
2017-12-18provider/nodejs: more robust version-check (#7738)Justin M. Keyes1
2017-12-17provider/nodejs: check version in Detect()Justin M. Keyes1
2017-12-17ci: nodejs client acceptance-test #7706Jan Edmund Lazo1
ci: install nodejs 8 in Appveyor, Travis provider: check node version for debug support Resolve https://github.com/neovim/neovim/pull/7577#issuecomment-350590592 for Unix. provider: test if nodejs in ci supports --inspect-brk nodejs host for neovim requires nodejs 6+ to work properly. nodejs 6.12+ or 7.6+ is required for debug support via `node --inspect-brk`. provider: run cli.js of nodejs host directly npm shims are useless because the user cannot set node to debug mode via --inspect-brk. This is problematic on Windows which use batchfiles and shell scripts to compensate for not supporting shebang. The patch uses `npm root -g` to get the absolute path of the global npm modules. If that fails, then the user did not install neovim npm package globally. Use that absolute path to find `neovim/bin/cli.js`, which is what the npm shim actually runs with node. glob() is for a simple file check in case bin/ is removed because the npm shims are ignored now.
2017-11-27Revert "provider: delete vimL stderr collector, now that it exists builtin"Björn Linse1
This change exposed a memory issue with buffered channels, possibly involving GC. Revert until it has been fixed. This reverts commit 0de019b6a65c6dd5141b7e002343df3689065ce7.
2017-11-26provider: delete vimL stderr collector, now that it exists builtinBjörn Linse1
2017-11-17win: provider: Detect(): return *.cmd path (#7577)Jan Edmund Lazo1
neovim-ruby-host is a ruby script. neovim-node-host is a shell script. Both don't work in cmd.exe so gem and npm provide batchfile shims. Return the full path of these shims, cmd.exe knows better what to do with these files.
2017-10-31use `provider#stderr_collector`Billy Vong1
2017-10-29remote: add node.js as a remote plugin providerBilly Vong1