aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/provider
Commit message (Collapse)AuthorAge
* fixup(clipboard): Fix error not properly handled #14984Shadman2021-07-11
| | | fixes #14967
* fixup(clipboard): Use case matching #14962Shadman2021-07-02
| | | Context: https://github.com/neovim/neovim/pull/14848#discussion_r663203173
* BugFix(clipboard): Fix block paste not working properlyshadmansaleh2021-07-01
| | | | | | | | | | | Block copy and paste from system-clipboard currently breaks formatting. This fixes it. The bug occurs because system-clipboard doesn't contain information about what mode the copy was made. Simple solution to this is we keep a cache of copy we last made along with mode information. If system-clipboard returns the cache we apply the mode information that we know about that cache.
* checkhealth: ignore 'wildignore' when seeking executables (#14495)Marco Hinz2021-05-07
| | | | | | 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
* added support for termux-clipboard : clipboard.vim (#14244)Aditya Alok2021-03-29
| | | | Termux - Android terminal emulator Link - https://termux.com/
* Fix clipboard provider detection (#13190)necabo2020-10-29
| | | Fixes #13189
* provider: update supported Python versions (#13070)Marco Hinz2020-10-08
| | | | | | | | Python 3.9 was released, so we need to add support for the upcoming Python 3.10. Python 3.5 and earlier reached their end-of-life. PEP 478: Python 3.5 Release Schedule: https://www.python.org/dev/peps/pep-0478 PEP 596: Python 3.9 Release Schedule: https://www.python.org/dev/peps/pep-0596 PEP 619: Python 3.10 Release Schedule: https://www.python.org/dev/peps/pep-0619
* provider: align all foo#Detect() functions #12839Justin M. Keyes2020-09-05
| | | | | | 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.
* Support for :perl, :perlfile, :perldo and perleval() (#12809)Justin M. Keyes2020-09-05
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * support for :perl, :perlfile, :perldo and perleval() * document that the perl provider doesn't currently work on Windows * document that the perl legacy interface is now also supported * added perleval() documentation * import legacy perl interface tests * only perl 5.22+ is supported * healtcheck: use g:perl_host_prog if its set instead using just 'perl' isn't correct as it may not be the version requested. ditto for 'cpanm', rather go through 'App::cpanminus' to find the latest perl version
| * healtcheck: use g:perl_host_prog if its set insteadJacques Germishuys2020-09-05
| | | | | | | | | | | | using just 'perl' isn't correct as it may not be the version requested. ditto for 'cpanm', rather go through 'App::cpanminus' to find the latest perl version
| * only perl 5.22+ is supportedJacques Germishuys2020-09-03
| |
| * support for :perl, :perlfile, :perldo and perleval()Jacques Germishuys2020-08-30
| |
* | g:clipboard: allow command given as a list #12775DDoSolitary2020-09-01
|/ | | fixes #12768
* Add overlapped option to jobstarterw72020-06-10
| | | | | | | When UV_OVERLAPPED_PIPE was used for the pipe passed to the child process, a problem occurred with the standard input of the .Net Framework application (#11809). Therefore, add the overlapped option to jobstart() and change it so that it is set only when necessary
* provider: Add python3.9 to autoload/provider/pythonx.vim (#12344)Faris A Chugthai2020-05-20
| | | | 3.9's scheduled for beta release today. https://www.python.org/dev/peps/pep-0596/
* win,runtime: Fix problem when win32yank was a symbolic link in WSL [skip ci] ↵erw72020-04-15
| | | | | | | | | (#12124) On some versions of Windows, WSL is unable to execute symbolic links to Windows executables (microsoft/WSL#3999). As a workaround for that problem this changes to use resolve() on WSL if win32yank was a symbolic link. fixes #12113.
* provider/perl: simplify detectionJan Edmund Lazo2020-01-20
|
* remote plugins: add support for perl hostsJacques Germishuys2020-01-20
|
* clipboard: do not close stderr together with stdout (fixup #11617)Björn Linse2020-01-02
| | | | | stderr is needed to get error messages in case of failure, and job handler expects it to be open.
* clipboard: close stdout when copying via xclip #11617Jan Edmund Lazo2020-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test_registers.vim can fail even if a clipboard manager is running. If a clipboard manager is not running, this test always fails with xclip. Use xsel as a workaround. https://github.com/astrand/xclip/issues/20 suggests closing stdout when sending input via stdin. Environment - Ubuntu Xenial - Vim 7.4 (any app with broken clipboard code will do) - Neovim nightly Steps to reproduce: 0. Start the clipboard manager. 1. Open a file in Vim on Linux. Vim should have +clipboard enabled. 'set clipboard=' 2. Yank some text to the clipboard register. 3. Quit Vim. 4. Run 'cd /path/to/neovim/repo/' 5. Run 'make oldtest'. Do not run any individual tests. They likely pass with or without this fix. Before fix: test_registers.vim can fail. After fix: test_registers.vim always passes. Close https://github.com/neovim/neovim/issues/7958 https://wiki.ubuntu.com/ClipboardPersistence#The_state_of_things
* system(), jobstart(): raise error on non-executable #11234Daniel Hahler2019-12-24
| | | | | | | | | | * 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
* provider/python: add python3.8 executable (#11402)Marco Hinz2019-11-17
| | | | | Python 3.8 was released 2019-10-14: https://www.python.org/dev/peps/pep-0569
* provider/pythonx: don't assume CWD (empty string) is in path #11304supermomonga2019-10-27
| | | | | | | | | sys.path.remove("") raises ValueError if the item is missing. https://docs.python.org/3/library/functions.html#filter: > filter(function, iterable) is equivalent to the generator expression (item > for item in iterable if function(item)) fixes #11293
* provider#pythonx: resolve/expand exe from host var (#11047)Daniel Hahler2019-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts part of ade88fe4c [1]. This is required for `let g:python3_host_prog = 'python'` etc, where it should get picked up from PATH. Without this it would show: ``` - INFO: pyenv: Path: /home/user/.pyenv/libexec/pyenv - INFO: pyenv: Root: /home/user/.pyenv - INFO: Using: g:python3_host_prog = "python" - ERROR: "python" was not found. - INFO: Executable: Not found - ERROR: Detected pip upgrade failure: Python executable can import "pynvim" but not "neovim": python - ADVICE: - Use that Python version to reinstall "pynvim" and optionally "neovim". pip3 uninstall pynvim neovim pip3 install pynvim pip3 install neovim # only if needed by third-party software ``` Note that it additionally causes a weird error ("Detected pip upgrade failure"), due to `s:check_bin` emptying `python_exe` (because the non-absolute file not being readable), and `provider#pythonx#DetectByModule('pynvim', a:version)` from 75593e6fce then just getting the value from the host var again (without actual checks). This is implicitly fixed via this patch now (because it is skipped), but could need some improvement in this regard probably. With this patch it resolves it (for a virtualenv where pynvim is not made available intentionally): ``` - INFO: pyenv: Path: /home/daniel/.pyenv/libexec/pyenv - INFO: pyenv: Root: /home/daniel/.pyenv - INFO: Using: g:python3_host_prog = "python" - WARNING: $VIRTUAL_ENV exists but appears to be inactive. This could lead to unexpected results. - ADVICE: - If you are using Zsh, see: http://vi.stackexchange.com/a/7654 - INFO: Executable: /home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python - ERROR: Command error (job=11, exit code 1): `'/home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python' -c 'import sys; sys.path.remove(""); import neovim; print(neovim.__file__)'` (in '/home/daniel/.dotfiles/vim/plugged/deoplete.nvim') Output: Traceback (most recent call last): File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim' Stderr: Traceback (most recent call last): File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim' - INFO: Python version: 3.7.4 - INFO: pynvim version: unable to load neovim Python module - ERROR: pynvim is not installed. Error: unable to load neovim Python module - ADVICE: - Run in shell: pip3 install pynvim ``` Note: this appears to display the error twice via "Output:" and "Stderr:". 1: https://github.com/neovim/neovim/pull/8784
* clipboard: handle/avoid SIGTERM with previous owner #10765Daniel Hahler2019-08-14
| | | | | Fixes regression due to signal being reported with exit status. ref #10573 939d9053bdf2f56 ref https://github.com/neovim/neovim/issues/7054#issuecomment-520282429
* provider: g:loaded_xx_provider=2 means "enabled and working"Justin M. Keyes2019-08-04
| | | | | Value of 1 cannot be used, because users might set that in their vimrc to _disable_ a provider, which would confuse :checkhealth and has().
* provider: decide status by g:loaded_xx_providerJustin M. Keyes2019-08-04
|
* provider: let providers decide their statusRui Abreu Ferreira2019-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* clipboard: Always copy as plain text in Wayland #9737Tim Morgan2019-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | `wl-copy` by default tries to determine the mime type of a copied bit of text. From the [readme](https://github.com/bugaevc/wl-clipboard): > wl-copy automatically infers the type of the copied content by running > xdg-mime(1) on it. So copying a Ruby script from Nvim may store it in the Wayland clipboard as mime-type `application/x-ruby`. This is a small reproduction without Nvim: $ cat test.rb #!/usr/bin/env ruby puts 'hello world' $ cat test.rb | wl-copy $ wl-paste --list-types application/x-ruby This commit fixes that by telling wl-copy that all text copied from Nvim has the mime type `text/plain`. $ cat test.rb | wl-copy --type text/plain $ wl-paste --list-types text/plain;charset=utf-8
* Merge #9468 'checkhealth: detect broken pip"'Justin M. Keyes2019-01-11
|\
| * health/pythonx: handle "pip upgrade failure"Marco Hinz2019-01-07
| | | | | | | | Reference: https://github.com/neovim/neovim/wiki/Following-HEAD#20181118
| * health/pythonx: refactor #Detect()Marco Hinz2019-01-07
| |
* | clipboard/macOS: assume that pbcopy works #9480Marco Hinz2019-01-10
|/ | | Avoids ~30-60 ms startup cost for users of clipboard=unnamed.
* python#CheckForModule: Use the given module string instead of hard-coding pynvimJames McCoy2019-01-01
|
* {health,provider}/python: Import the neovim, rather than pynvim, moduleJames McCoy2019-01-01
| | | | | | | | The neovim module is available for backwards compatibility. We should not yet force the use of the pynvim module, since there's no other major reason to bump the minimum supported Python client module. Closes #9426
* provider/lang: expand() g:foo_host_prog (#9312)Justin M. Keyes2018-12-05
| | | | | | | | | | 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
* clipboard: Revert unused check #9309@equalsraf2018-12-04
| | | | | | | | | | | | | | | | PR #9304 added support for functions in clipboard providers. As part of the PR I meant to move two checks in the provider code out of an if statement into separate statements and adding additional checks for g:clipboard attributes - as it turns out the code is wrong and it does not implement additional checks while it adds two conditions that make very little sense type(g:clipboard['copy']) #isnot# v:t_func what would make sense would be something along the lines of type(g:clipboard['copy']['+']) #isnot# v:t_func but might not be what we want either, so I'm reverting this.
* clipboard: Support custom VimL functions #9304Rui Abreu Ferreira2018-12-03
| | | | | | | | | | | | Up to now g:clipboard["copy"] only supported string values invoked as system commands. This commit enables the use of VimL functions instead. The function signatures are the same as in provider/clipboard.vim. A clipboard provider is expected to store and return a list of lines (i.e. the text) and a register type (as seen in setreg()). cache_enabled is ignored if "copy" is provided by a VimL function.
* clipboard: Prefer xclip (#9302)Justin M. Keyes2018-12-01
| | | | | | | | | | | The order was swapped in #4150 to prefer `xsel` but there wasn't a clear explanation. Meanwhile, `xsel` has been neglected upstream. Let's trying preferring `xclip` again, we've had a few reports of problems with `xsel`. closes #7237 ref #5853 ref #7449
* clipboard.vim: check for win32yank.exe #9263Bjorn Neergaard2018-11-21
| | | Win32 allows omitting the `.exe` extension, but WSL does not.
* health/python: warn if pynvim upgrade failedMarco Hinz2018-11-20
| | | | Reference: https://github.com/neovim/neovim/wiki/Following-HEAD#20181118
* provider/python: refactoringMarco Hinz2018-11-20
|
* health/python: 'neovim' module was renamed to 'pynvim'Marco Hinz2018-11-17
|
* clipboard: support Wayland (#9230)ainola2018-11-13
| | | Fixes #9213
* provider/nodejs: handle missing stdoutJustin M. Keyes2018-10-31
| | | | ref https://github.com/neovim/neovim/issues/9001#issuecomment-434802234
* provider/nodejs: fix npm,yarn detectionJan Edmund Lazo2018-10-22
| | | | | | | | | | 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.
* provider/nodejs: Simultaneously query npm and yarn #9054Mahmoud Al-Qudsi2018-10-18
| | | | | | 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.
* ruby: detect rbenv shims for other versions (#8733)Marco Hinz2018-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When rbenv is used for managing Ruby installations, just checking for an executable called "neovim-ruby-host" is not enough. It has to be run as well. If it does not return 0, then neovim-ruby-host is merely a shim for another Ruby installation. $ rbenv versions 2.5.0 * 2.5.1 (set by /Users/mhi/.rbenv/version) $ rbenv whence neovim-ruby-host 2.5.0 $ which neovim-ruby-host /Users/mhi/.rbenv/shims/neovim-ruby-host $ neovim-ruby-host rbenv: neovim-ruby-host: command not found The `neovim-ruby-host' command exists in these Ruby versions: 2.5.0 $ echo $? 127 Additionally, the detection logic was moved from provider#ruby#Detect() to s:detect(), because the former is run in the sandbox which forbids calling system().
* provider/node: npm --loglevel silent (#8682)Takuya Matsuyama2018-07-04
| | | | closes #8674 npm log level may cause unexpected output.
* checkhealth: node.js: also search yarn #8528Ahmed El Gabri2018-06-17
| | | | | - "neovim" package may be installed with yarn. Check yarn if npm fails. - Use filereadable() instead of glob(). closes #8552