dense-analysis / ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support
BSD 2-Clause "Simplified" License
13.59k stars 1.44k forks source link

php-language-server doesn't run with global executable #1857

Open sitedyno opened 6 years ago

sitedyno commented 6 years ago

Information

VIM version

NVIM v0.3.1-dev Build type: RelWithDebInfo

Operating System: Ubuntu 16.04

:ALEInfo

Current Filetype: php Available Linters: ['langserver', 'phan', 'php', 'phpcs', 'phpmd', 'phpstan'] Enabled Linters: ['langserver', 'phan', 'php', 'phpcs', 'phpmd', 'phpstan'] Suggested Fixers: 'php_cs_fixer' - Fix PHP files with php-cs-fixer. 'phpcbf' - Fix PHP files with phpcbf. 'remove_trailing_lines' - Remove all blank lines at the end of a file. 'trim_whitespace' - Remove all trailing whitespace characters at the end of every line. Linter Variables:

let g:ale_php_langserver_executable = '/home/candybar/.vim/vim-plugins/php-language-server/bin/php-language-server.php' let g:ale_php_langserver_use_global = 1 let g:ale_php_phan_executable = 'phan' let g:ale_php_phan_minimum_severity = 0 let g:ale_php_phan_use_client = 0 let g:ale_php_phpcs_executable = 'phpcs' let g:ale_php_phpcs_options = '' let g:ale_php_phpcs_standard = '' let g:ale_php_phpcs_use_global = 1 let g:ale_php_phpmd_executable = 'phpmd' let g:ale_php_phpmd_ruleset = 'cleancode,codesize,controversial,design,naming,unusedcode' let g:ale_php_phpstan_configuration = '' let g:ale_php_phpstan_executable = 'phpstan' let g:ale_php_phpstan_level = '4' Global Variables:

let g:ale_cache_executable_check_failures = v:null let g:ale_change_sign_column_color = 0 let g:ale_command_wrapper = '' let g:ale_completion_delay = 100 let g:ale_completion_enabled = 1 let g:ale_completion_max_suggestions = 50 let g:ale_echo_cursor = 1 let g:ale_echo_msg_error_str = 'Error' let g:ale_echo_msg_format = '%code: %%s' let g:ale_echo_msg_info_str = 'Info' let g:ale_echo_msg_warning_str = 'Warning' let g:ale_enabled = 1 let g:ale_fix_on_save = 0 let g:ale_fixers = {} let g:ale_history_enabled = 1 let g:ale_history_log_output = 1 let g:ale_keep_list_window_open = 0 let g:ale_lint_delay = 200 let g:ale_lint_on_enter = 1 let g:ale_lint_on_filetype_changed = 1 let g:ale_lint_on_save = 1 let g:ale_lint_on_text_changed = 'always' let g:ale_lint_on_insert_leave = 0 let g:ale_linter_aliases = {} let g:ale_linters = {} let g:ale_linters_explicit = 0 let g:ale_list_window_size = 10 let g:ale_list_vertical = 0 let g:ale_loclist_msg_format = '%code: %%s' let g:ale_max_buffer_history_size = 20 let g:ale_max_signs = -1 let g:ale_maximum_file_size = v:null let g:ale_open_list = 0 let g:ale_pattern_options = v:null let g:ale_pattern_options_enabled = v:null let g:ale_set_balloons = 0 let g:ale_set_highlights = 1 let g:ale_set_loclist = 1 let g:ale_set_quickfix = 0 let g:ale_set_signs = 1 let g:ale_sign_column_always = 0 let g:ale_sign_error = '>>' let g:ale_sign_info = '--' let g:ale_sign_offset = 1000000 let g:ale_sign_style_error = '>>' let g:ale_sign_style_warning = '--' let g:ale_sign_warning = '--' let g:ale_statusline_format = v:null let g:ale_type_map = {} let g:ale_use_global_executables = 1 let g:ale_warn_about_trailing_blank_lines = 1 let g:ale_warn_about_trailing_whitespace = 1 Command History:

(executable check - failure) phan (executable check - success) php (finished - exit code 0) ['/usr/bin/zsh', '-c', 'php -l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0 -- < ''/tmp/nvimmCAR20/2/Plugin.php''']

<<>> No syntax errors detected in - <<>>

(executable check - failure) phpcs (executable check - failure) phpmd (executable check - failure) phpstan (executable check - failure) phan (finished - exit code 0) ['/usr/bin/zsh', '-c', 'php -l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0 -- < ''/tmp/nvimmCAR20/3/Plugin.php''']

<<>> No syntax errors detected in - <<>>

(executable check - failure) phpcs (executable check - failure) phpmd (executable check - failure) phpstan

What went wrong

The language server does not run when editing php files. Linting via the php executable works fine.

The language server will run if it is installed with the project, in other words installed to the default location.

Reproducing the bug

call plug#begin('~/.vim/vim-plugins')
Plug 'w0rp/ale'
let g:ale_php_langserver_use_global = 1
let g:ale_use_global_executables = 1
let g:ale_php_langserver_executable = expand('~/.vim/vim-plugins/php-language-server/bin/php-language-server.php')
let g:ale_completion_enabled = 1
Plug 'felixfbecker/php-language-server', {'do': 'composer install && composer run-script parse-stubs'}
call plug#end()

Installed w0rp/ale and felixbecker/php-language-server via vim-plug. Set ale variables to enable global language server executable. The language server executable is not called.

Apologies if I'm making some stupid mistake, but I've burned a couple hours on this now.

rashivkp commented 4 years ago

:version NVIM v0.4.3 Build type: RelWithDebInfo LuaJIT 2.0.5

ALEInfo Current Filetype: php Available Linters: ['langserver', 'phan', 'php', 'phpcs', 'phpmd', 'phpstan', 'psalm'] Enabled Linters: ['langserver', 'php', 'phpcs'] Suggested Fixers: 'php_cs_fixer' - Fix PHP files with php-cs-fixer. 'phpcbf' - Fix PHP files with phpcbf. 'remove_trailing_lines' - Remove all blank lines at the end of a file. 'trim_whitespace' - Remove all trailing whitespace characters at the end of every line. Linter Variables: let g:ale_php_langserver_executable = '/home/username/src/php-language-server/bin/php-language-server.php' let g:ale_php_langserver_use_global = 1 let g:ale_php_php_cs_fixer_executable = 'php-cs-fixer' let g:ale_php_php_executable = 'php' let g:ale_php_phpcs_executable = 'phpcs' let g:ale_php_phpcs_options = '' let g:ale_php_phpcs_standard = 'PSR12' let g:ale_php_phpcs_use_global = 1 Global Variables: let g:ale_cache_executable_check_failures = v:null let g:ale_change_sign_column_color = 0 let g:ale_command_wrapper = '' let g:ale_completion_delay = 100 let g:ale_completion_enabled = 1 let g:ale_completion_max_suggestions = 50 let g:ale_echo_cursor = 1 let g:ale_echo_msg_error_str = 'Error' let g:ale_echo_msg_format = '%code: %%s' let g:ale_echo_msg_info_str = 'Info' let g:ale_echo_msg_warning_str = 'Warning' let g:ale_enabled = 1 let g:ale_fix_on_save = 0 let g:ale_fixers = {'php': ['phpcbf', 'php_cs_fixer', 'trim_whitespace'], 'javascript': ['prettier'], 'css': ['prettier'], 'python': ['autopep8', 'yapf', 'isort']} let g:ale_history_enabled = 1 let g:ale_history_log_output = 1 let g:ale_keep_list_window_open = 0 let g:ale_lint_delay = 200 let g:ale_lint_on_enter = 1 let g:ale_lint_on_filetype_changed = 1 let g:ale_lint_on_insert_leave = 1 let g:ale_lint_on_save = 1 let g:ale_lint_on_text_changed = 'normal' let g:ale_linter_aliases = {} let g:ale_linters = {'php': ['langserver', 'php', 'phpcs']} let g:ale_linters_explicit = 0 let g:ale_list_vertical = 0 let g:ale_list_window_size = 10 let g:ale_loclist_msg_format = '%code: %%s' let g:ale_lsp_root = {} let g:ale_max_buffer_history_size = 20 let g:ale_max_signs = -1 let g:ale_maximum_file_size = v:null let g:ale_open_list = 0 let g:ale_pattern_options = v:null let g:ale_pattern_options_enabled = v:null let g:ale_set_balloons = 0 let g:ale_set_highlights = 1 let g:ale_set_loclist = 1 let g:ale_set_quickfix = 0 let g:ale_set_signs = 1 let g:ale_sign_column_always = 0 let g:ale_sign_error = '>>' let g:ale_sign_info = '--' let g:ale_sign_offset = 1000000 let g:ale_sign_style_error = '>>' let g:ale_sign_style_warning = '--' let g:ale_sign_warning = '--' let g:ale_sign_highlight_linenrs = 0 let g:ale_statusline_format = v:null let g:ale_type_map = {} let g:ale_use_global_executables = 1 let g:ale_virtualtext_cursor = 0 let g:ale_warn_about_trailing_blank_lines = 1 let g:ale_warn_about_trailing_whitespace = 1 Command History: (executable check - failure) /home/username/src/php-language-server/bin/php-language-server.php (executable check - success) php (finished - exit code 0) ['/usr/bin/zsh', '-c', '''php'' -l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0 -