Vim — MySQLi функции с phpcomplete

Я установил phpcomplete.vim с Vundle, надеясь, что я получу автозаполнение для PHP.

Однако появляются только несколько функций mysqli. Даже mysqli_connect () не обнаруживается.

Я сделал что-то не так или эти функции не реализованы? Могу ли я получить их с другими плагинами или что-то?

2

Решение

Проблема заключается в том, что встроенная функция / класс карты (осторожно, это довольно большой файл) не содержит все mysqli_* функция, как mysql_connect (некоторые функции там как mysqli_get_cache_stats).

Основная причина, вероятно, из-за кода который генерирует эти карты из документов, и в этом случае это, вероятно, ошибка / отсутствие поддержки для таких псевдонимов (например, mysqli_connect) и функции, которые можно вызывать как процедурные, так и через различные связанные с MySQL классы (например, mysqli_close).

Если вы используете мастер-версию плагина github, вы можете добавлять записи вручную через misc/builtin_manual.vim файл, это будет выглядеть примерно так (просто добавьте его в конец файла):

call extend(g:phpcomplete_builtin['functions']['mysqli'], {
\ 'mysqli_connect(': '[ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] | mysqli',
\ 'mysqli_escape_string(': 'string $escapestr | string',
\ 'mysqli_execute(': ' mysqli_stmt $stmt | bool',
\ 'mysqli_set_opt(': ' mysqli $link, int $option, mixed $value | bool',
\ })

Просто добавьте больше таких, которые вы хотели бы видеть в результатах.

Если вы хотите поиграть со встроенными картами (они не обновлялись в течение 10 месяцев, когда я писал это), вы можете найти генератор в Вот, вам понадобятся документы от php.net и командная строка php.

Я был бы очень признателен, если бы вы могли открыть вопрос на github, так что у нас может быть подходящее место для обсуждения и тому подобное.

Обновить:

Я выдвинул коммит с обновленными встроенными картами и поддержкой псевдонимов «процедурный стиль» в генераторе.

1

Другие решения

РЕДАКТИРОВАТЬ: В этом посте обсуждается версия phpcomplete.vim, которая поставляется с Vim 7.4. Версия, о которой идет речь — версия shawncplus: phpcomplete.vim. Я настоятельно рекомендую обновить версию до версии shawncplus, так как она гораздо более полная (каламбур!).

Старый phpcomplete.vim

К сожалению, php complete, который поставляется с Vim, не имеет много общих функций, например json_decode, Я добавил записи завершения самостоятельно.

Добавьте следующее к ~/.vim/after/ftplugin/php.vim:

if !exists('g:php_builtin_functions')
call phpcomplete#LoadData()
let g:php_builtin_functions['json_decode('] = 'string $json [, bool $assoc [, int $depth [, int $options]]] | mixed'
let g:php_builtin_functions['json_encode('] = 'mixed $value [, int $options [, int $depth]] | string'
let g:php_builtin_functions['json_last_error_msg('] = 'void | string'
let g:php_builtin_functions['json_last_error('] = 'void | int'
endif

Примечание: мой пример просто добавляет функции JSON. Вам нужно будет изменить их для ваших функций mysqli.

В качестве бонуса здесь моя версия K Команда, которую я использую для файлов PHP (положить в ~/.vim/after/ftplugin/php.vim):

function! s:PHPQuickMan(word)
let word = a:word . '('
echo word . get(g:php_builtin_functions, word, ' can not be found')
endfunction

nnoremap <buffer> K :call <SID>PHPQuickMan(expand('<cword>'))<cr>
2

По вопросам рекламы [email protected]