haringsrob / laravel-dev-tools
Laravel 开发工具包含多个工具,可简化 Laravel 开发:Blade lsp
Requires
- php: ^8.0
- illuminate/support: ^9.3
- illuminate/view: ^9.3
- laravel-zero/framework: ^8.0|^9.0
- phpactor/language-server: ^1.1
- phpactor/text-document: ^1.2
- spatie/invade: ^1.0
- wa72/simplelogger: ^1.1
Requires (Dev)
- mockery/mockery: ^1.4.4
- pestphp/pest: ^1.21.1
This package is auto-updated.
Last update: 2024-09-16 12:52:23 UTC
README
The Laravel/Blade lsp provides
Blade
- 对缺失组件的诊断以及创建它的操作。
- 组件及其参数的自动完成。
- 悬停显示视图的路径。
- 在组件上跳转到定义可跳转到视图或组件类。
Livewire
- livewire 组件及其参数的自动完成。
- livewire wireable 属性的自动完成。
- 跳转到 livewire 类的定义(尚未是视图)。
- 悬停显示视图的路径。
- 对缺失 wire:model 规则/参数或缺失 wire:click 方法的诊断。
- 对缺失组件的诊断以及创建它的操作。
外部 lsp 的提取器
- routes() 自动完成
- views() 自动完成
- container 自动完成
- config() 自动完成
- Blade 中的 PHP 自动完成
- 模型信息、关系构建器
演示
状态
此 LSP 仍被视为不稳定。如果您发现问题,欢迎您提供带有 可复现示例 的问题/拉取请求。
没有明确复现步骤的问题可能会被关闭而不回答。
由于它是实验性的,无法保证它一定会工作。请始终确保您的代码处于版本控制之下。
可能会很慢。
安装
要求
PHP 8.0,旧版本将无法工作。(甚至不尝试)。LARAVEL 8.0,旧版本将无法工作。
此 LSP 基于您的运行时的 php。我尚未用 docker 测试,所以现在假设它不会从外部工作。
您的应用程序需要可启动。此 LSP 将在您的代码库中运行命令以获取所需的所有信息。(就像运行 laravel-ide-helper 一样)。
Vscode
!! 不再更新,因此现在最好自己构建。
安装名称: laravel-blade 语法
从 vscode 扩展中下载 此扩展
(Neo)vim
从发行版中下载编译版本,然后使用它来设置 lsp
这取决于您的设置,以下是在 nvim-lspconfig
中使用它的说明
local lspconfig = require'lspconfig' local configs = require 'lspconfig.configs' -- Configure it configs.blade = { default_config = { -- Path to the executable: laravel-dev-generators cmd = { "laravel-dev-generators", "lsp" }, filetypes = {'blade'}; root_dir = function(fname) return lspconfig.util.find_git_ancestor(fname) end; settings = {}; }; } -- Set it up lspconfig.blade.setup{ -- Capabilities is specific to my setup. capabilities = capabilities }
从源码构建
此 LSP 基于 phpactor/language-server 的出色工作。
由于它是 php,实际上不需要构建,但我们可以通过制作一个 phar 来完成它,以便更容易分发。
要构建 phar,请运行
./laravel-dev-tools app:build
构建 vscode 扩展
要构建 vscode 扩展,我们必须构建 phar 并将其复制到扩展的目录
./laravel-dev-tools app:build --build-version=1 && cp builds/laravel-dev-tools extensions/vscode/laravel-dev-tools
然后在 extensions/vscode
目录中,我们执行以下操作
安装 npm 模块: npm install
然后创建包: npm run package
(对我来说:使用 vsce publish
发布)
许可证说明
此项目基于 Laravel Zero
它使用 phpactor/language-server 作为 LSP 层。
其他使用的包有
- Spatie invade
- 从 Laravel 的核心中提取信息。
- Laravel
- 最好的 PHP 框架,并且需要它的类型。
- Soyhuce/next-ide-helper
- 提取模型信息。
待办事项
- 构建时自动将说明/许可文件复制到扩展文件夹。