Я установил phpcomplete.vim с Vundle, надеясь, что я получу автозаполнение для PHP.
Однако появляются только несколько функций mysqli. Даже mysqli_connect () не обнаруживается.
Я сделал что-то не так или эти функции не реализованы? Могу ли я получить их с другими плагинами или что-то?
Проблема заключается в том, что встроенная функция / класс карты (осторожно, это довольно большой файл) не содержит все 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, так что у нас может быть подходящее место для обсуждения и тому подобное.
Я выдвинул коммит с обновленными встроенными картами и поддержкой псевдонимов «процедурный стиль» в генераторе.
РЕДАКТИРОВАТЬ: В этом посте обсуждается версия phpcomplete.vim, которая поставляется с Vim 7.4. Версия, о которой идет речь — версия shawncplus: phpcomplete.vim. Я настоятельно рекомендую обновить версию до версии shawncplus, так как она гораздо более полная (каламбур!).
К сожалению, 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>