haringsrob/laravel-dev-tools

Laravel 开发工具包含多个工具,可简化 Laravel 开发:Blade lsp

1.0.0 2022-03-09 19:34 UTC

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 自动完成
  • 模型信息、关系构建器

演示

Demo

状态

此 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 层。

其他使用的包有

待办事项

  • 构建时自动将说明/许可文件复制到扩展文件夹。