@yaegassy/coc-laravel v0.7.18
coc-laravel
Laravel extension for coc.nvim.
Install
CocInstall:
:CocInstall @yaegassy/coc-laravel
scoped packages
vim-plug:
Plug 'yaegassy/coc-laravel', {'do': 'yarn install --frozen-lockfile'}
Features
Note:
This coc-extension executes artisan
commands in the background for some features. Therefore, you must be able to run PHP
in your environment.
This coc-extension will provide various completion features and more features for Laravel projects.
- Completions
- Component completion | DEMO
- Livewire completion (Also compatible with Livewire
v3
!) - PHP completion in PHP-related region of Blade file
- NOTE: To use this feature, please execute the
laravel.stubs.download
command. - PHP Function completion | DEMO
- PHP Class completion | DEMO
- PHP Static Class completion (Static class members and constants, e.g.
DateTime::|
) | DEMO - PHP Object Member completion (e.g.
$obj->|
) | DEMO - PHP Variable completion | DEMO
- PHP Constant completion | DESCRIPTION
- PHP Keyword completion | DESCRIPTION
- NOTE: To use this feature, please execute the
- Directive completion | DEMO
- Config completion | DEMO
- Env completion | DEMO
- Validation completion | DEMO
- Route completion | DEMO
- View completion | DEMO
- Middleware completion | DEMO
- Guard completion | DEMO
- Translation completion | DEMO
- Method directive parameter completion | DEMO
- View reference variable completion | DEMO
- Eloquent model field completion | DEMO
- Completion feature using
_ide_helper_models.php
file generated by laravel-ide-helper
- Completion feature using
- Misc
- Definitions
- View definition | DEMO
- PHP -> Blade Definition jump to the Blade template specified by the view() function.
- Blade View definition | DEMO
- Blade -> Blade Jump to the Blade template specified by the
@extends
and@include
directives.
- Blade -> Blade Jump to the Blade template specified by the
- Component definition | DEMO
- Blade -> PHP or Blade Jump to the component file. Both class components and anonymous components are supported.
- Livewire tag definition | DEMO
- Blade -> PHP or Blade Jump to the livewire file. Both livewire class and blade template are supported.
- Livewire directive definition | DEMO
- Blade -> PHP or Blade Jump to the livewire file. Both livewire class and blade template are supported.
- View definition | DEMO
- References
laravel.view.findAllReferences
command | DEMO- Blade -> PHP Show references to PHP files that use the current blade
file. Referenced directories are
routes
,app/Http/Controllers
,app/View/Components
,app/Http/Livewire
andapp/Livewire
.
- Blade -> PHP Show references to PHP files that use the current blade
file. Referenced directories are
- View reference | DEMO
- PHP -> Blade Reference to a PHP file that uses the same template in the view function.
- Hovers
- ComponentTag Hover | DEMO
- Diagnostics
- CodeActions
- Artisan and Sail commands integration
laravel.artisan.run
command feature.laravel.sailArtisan.run
command feature.
RECOMMENDED Additional installation of "watchman"
coc-laravel
uses the workspace/didChangeWatchedFiles
notification to monitor files in the project.
In coc.nvim, it is recommended to install watchman in order to utilize this feature.
If you have difficulty installing watchman
, you can use coc-laravel
without watchman
, but you may not be able to immediately use IntelliSense with the newly added files.
In this case, please manually enter the following command.
:CocCommand laravel.project.restart
or
:CocRestart
workspaceFolders
Depending on the project like mono repo or how Vim/Neovim is started, workspaceFolders
may not be recognized correctly.
To make coc.nvim recognize workspaceFolders
correctly, you can set b:coc_root_patterns
in .vimrc/init.vim
Example:
au FileType php,blade let b:coc_root_patterns = ['.git', '.env', 'composer.json', 'artisan']
For more information, check this coc.nvim's wiki.
Configuration options
laravel.enable
: Enable coc-laravel extension, default:true
laravel.environment.phpPath
: Path to PHP, you can use a custom version of PHP. If there is no setting,php
of the execution environment will be used, default:""
laravel.project.excludeVendors
: List of target vendor directories to exclude during project analysis, e.g.["fakerphp", "phpunit"]
, default:[]
laravel.project.startupMessageEnable
: Enable project startup messages, default:true
laravel.stubs.customVersion
: Specify the version of stubs to download with thelaravel.stubs.download
command. If not set, thestubsVersion
defined inpackage.json
will be used, default:""
laravel.stubs.useStubs
: List of stubs to be used, default:["Core", "date", "standard"]
laravel.completion.enable
: Enable all completion feature, default:true
laravel.completion.directiveEnable
: Enable directive completion, default:true
laravel.completion.directiveList
: List of directive used in directive completion, default: Omitted due to the large number of settings, See configuration in package.jsonlaravel.completion.configEnable
: Enable config completion, default:true
laravel.completion.envEnable
: Enable env completion, default: truelaravel.completion.validationEnable
: Enable validation completion.laravel.completion.routeEnable
: Enable route completion, default:true
laravel.completion.viewEnable
: Enable view completion, default:true
laravel.completion.middlewareEnable
: Enable middleware completion, default:true
laravel.completion.guardEnable
: Enable guard completion, default:true
laravel.completion.translationEnable
: Enable translation completion, default:true
laravel.completion.componentEnable
: Enable component completion, default:true
laravel.completion.phpFunctionEnable
: Enable php function completion, default:true
laravel.completion.phpFunction.stubsEnable
: Enable stubs in phpFunction completion, default:true
laravel.completion.phpFunction.vendorEnable
: Enable vendor in phpFunction completion, default:true
laravel.completion.phpClassEnable
: Enable php class completion, default:true
laravel.completion.phpClass.stubsEnable
: Enable stubs in phpClass completion, default:true
laravel.completion.phpClass.vendorEnable
: Enable vendor in phpClass completion, default:true
laravel.completion.phpConstantEnable
: Enable php constant completion, default:true
laravel.completion.phpConstant.stubsEnable
: Enable stubs in phpConstant completion, default:true
laravel.completion.phpConstant.vendorEnable
: Enable vendor in phpConstant completion, default:true
laravel.completion.phpStaticClassEnable
: Enable php static class completion, default:true
laravel.completion.phpObjectMemberEnable
: Enable php object member completion, default:true
laravel.completion.phpVariableEnable
: Enable php variable completion, default:true
laravel.completion.phpKeywordEnable
: Enable php keyword completion, default:true
laravel.completion.eloquentModelFieldEnable
: Enable eloquent model field completion, default:true
laravel.completion.viewReferenceVariableEnable
: Enable view reference variable completion, default:true
laravel.completion.methodParameterEnable
: Enable method parameter completion, default:true
laravel.completion.livewireEnable
: Enable livewire completion, default:true
laravel.livewire.wireClickAttributes
: List of click related action to be added towire:xxxx
, default:["click", "click.prefetch"]
laravel.livewire.wireModelAttributes
: List of model related action to be added towire:xxxx
, default:["model", "model.debounce.100ms", "model.lazy", "model.defer"]
laravel.livewire.wireEventAttributes
: List of browser events to be added towire:xxxx
. No need forwire:model
orwire:click
. default: Omitted due to the large number of settings, See configuration in package.jsonlaravel.definition.enable
: Enable definition, defaulttrue
laravel.reference.enable
: Enable reference, defaulttrue
laravel.hover.enable
: Enable hover, defaulttrue
laravel.diagnostic.enable
: Enable diagnostic, default:true
laravel.codeAction.enable
: Enable code action, default:true
laravel.artisan.withoutArgumentsCommandList
: List of commands to quickly executelaravel.artisan.run
orlaravel.sailArtisan.run
without prompting for arguments or options, e.g.["route:list", "clear-compiled"]
, default:[]
laravel.artisan.enableSplitRight
: Use vertical belowright for artisan terminal window, default:false
Commands
laravel.project.restart
: Run project restartlaravel.project.stats
: (Develop) Show project statslaravel.project.finder
: (Develop) Run project finderlaravel.stubs.download
: Download stubslaravel.stubs.version
: Show the version of stubslaravel.artisan.run
: Run artisan commandlaravel.sailArtisan.run
: Run sail artisan commandlaravel.view.findAllReferences
: Find view file referenceslaravel.showOutput
: Show laravel output channel
CodeActions
Example key mapping (Code Action related):
nmap <silent> ga <Plug>(coc-codeaction-line)
nmap <silent> <leader>ac <Plug>(coc-codeaction-cursor)
Actions:
Create blade component
Fix method directive parameter
Recommended coc-extensions for php
Inspired Projects
- amir9480/vscode-laravel-extra-intellisense | (VSCode extension)
- Laravel Idea | (PhpStorm plugin)
- haringsrob/laravel-dev-tools
- and More...
Thanks
- glayzzle/php-parser
- Stillat/blade-parser-typescript
- JetBrains/phpstorm-stubs
- microsoft/vscode-html-languageservice
License
MIT
This extension is built with create-coc-extension
4 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago