williamboman / mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.
Apache License 2.0
7.81k stars 273 forks source link

ansiblels plugin auto-completion does not work #228

Closed sincomil closed 2 years ago

sincomil commented 2 years ago

Problem description

After moving from nvim-lsp-installer to mason.nvim found that ansibles plugin's auto-completion does not working. LspLog (~/.cache/nvim/lsp.log) show following line on each time I trying to autocomplete:

[ERROR][2022-08-02 16:21:37] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:21:39] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:21:43] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:14] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:30] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:34] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:36] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:36] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:36] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:36] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:38] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:38] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:38] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:38] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"
[ERROR][2022-08-02 16:22:38] ...lsp/handlers.lua:455    "An error occurred in 'onCompletion' handler: [TypeError] Cannot read properties of undefined (reading 'provideRedirectModules')\nTypeError: Cannot read properties of undefined (reading 'provideRedirectModules')\n    at /home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:45:112\n    at Generator.next (<anonymous>)\n    at fulfilled (/home/user/.local/share/nvim/mason/packages/ansible-language-server/node_modules/@ansible/ansible-language-server/out/server/src/providers/completionProvider.js:5:58)"

Why do you think this is an issue with mason.nvim?

When switching back to nvim-lsp-installer everything works again

Neovim version (>= 0.7)

NVIM v0.7.2 Build type: Release LuaJIT 2.1.0-beta3

Operating system/version

Linux localhost 5.18.14-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 23 Jul 2022 11:46:17 +0000 x86_64 GNU/Linux

I've manually reviewed the Nvim LPS client log (:MasonLog) to find potential errors

I've recently downloaded the latest plugin version of mason.nvim

Affected packages

ansible-language-server

Steps to reproduce

  1. Install: mason.nvim + mason-lspconfig
  2. Uninstall: nvim-lsp-installer
  3. Install: ansible-language-server
  4. Open ansible-file
  5. Start server with: LspStart ansiblels
  6. Start typing/modifying

Actual behavior

No completion from LSP-source available, only from current buffer

Expected behavior

Should be available completion for ansible modules, for example: When typing: ansible.builtin.shell - it should display a list of options

Healthcheck

mason: require("mason.health").check()
========================================================================
## mason.nvim report
  - OK: neovim version >= 0.7.0
  - OK: **Go**: `go version go1.18.4 linux/amd64`
  - OK: **cargo**: `cargo 1.62.1`
  - OK: **luarocks**: `/usr/bin/luarocks 3.9.0`
  - OK: **Ruby**: `ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x86_64-linux]`
  - OK: **RubyGem**: `3.3.15`
  - WARNING: **Composer**: not available
  - WARNING: **PHP**: not available
  - OK: **npm**: `8.14.0`
  - OK: **node**: `v18.6.0`
  - OK: **python3**: `Python 3.10.5`
  - OK: **pip3**: `pip 22.1.2 from /usr/lib/python3.10/site-packages/pip (python 3.10)`
  - WARNING: **javac**: not available
  - OK: **java**: `openjdk version "1.8.0_342"`
  - WARNING: **julia**: not available
  - OK: **wget**: `GNU Wget 1.21.3 for linux-gnu.`
  - OK: **curl**: `curl 7.84.0 (x86_64-pc-linux-gnu) libcurl/7.84.0 OpenSSL/1.1.1q zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.48.0`
  - OK: **gzip**: `gzip 1.12`
  - OK: **tar**: `tar (GNU tar) 1.34`
  - OK: **bash**: `GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)`
  - OK: **sh**: `Ok`
  - OK: **python3_host_prog**: `Python 3.10.2`
  - OK: GitHub API rate limit. Used: 4. Remaining: 56. Limit: 60. Reset: Вт 02 авг 2022 18:22:20.

Screenshots or recordings

No response

williamboman commented 2 years ago

Hello! The Ansible language server was changed from building from source to installing a recommended prepackaged npm package instead. I found https://github.com/ansible/ansible-language-server/issues/391 which describes the same issue, as well as a solution to the problem.