phpactor / language-server-protocol
PHP 语言服务器协议(转译版)
3.17.3
2023-03-11 13:19 UTC
Requires
- php: ^7.3 || ^8.0
- dantleech/invoke: ^2.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.0
- friendsofphp/php-cs-fixer: ^2.17
- phpstan/phpstan: ~0.12.0
- phpunit/phpunit: ^9.2
This package is auto-updated.
Last update: 2024-09-04 10:30:11 UTC
README
此包将 vscode-language-server-protocol
库转译为 PHP,提供创建语言服务器所需的协议类。
关于使用此库的注意事项
大多数(如果不是所有)上游 TypeScript 类型没有构造函数,因此构造函数的参数顺序可能会在 每次发布 时更改。
因此,强烈建议使用命名参数。
生成
生成代码
npm run generate
:构建和转译npm run watch
:在 TypeScript 变更时监视和编译。
运行 PHP 测试
composer integrate
使用方法
反序列化
此库将使用 TypeScript 中的类型信息为每个类型生成 fromArray
静态构造函数。
$item = CompletionItem::fromArray([ 'label' => 'Foobar', 'kind' => 1, 'detail' => 'This is foobar', 'documentation' => [ 'kind' => 'markdown', 'value' => 'Foobar', ], 'additionalTextEdits' => [ [ 'range' => [ 'start' => [ 'line' => 5, 'character' => 10, ], 'end' => [ 'line' => 10, 'character' => 10, ], ], 'newText' => 'Foobar', ], ], 'command' => [ 'title' => 'Foobar', 'command' => 'my.command', ], ]);
将返回一个完全填充的完成项,具有具体的子类型。
注意:在从语言服务器客户端请求反序列化时,忽略附加参数(fromArray
的第二个参数)可能是个好主意。这是因为将未知属性传递给某些 LSP 对象是完全有效的。
序列化
类中的属性是公开的,以启用 JSON 序列化。调用 json_encode($lspObject)
获取有效的 LSP JSON 对象。
贡献
此包是开源的,欢迎贡献!请随意在此存储库上提交拉取请求。
支持
- 在主 Phpactor 存储库上创建一个问题。
- 加入 Slack 上的
#phpactor
频道,Slack 频道地址为 Symfony Devs。