8721548d
lsp: foundational types + annotate pb runtime entry + lazy views
Add lua-language-server scaffolding so editors and LLM assistants get
parameter / return types for the public pb runtime. Pure metadata --
no runtime behavior change. 748 tests still pass.
- .luarc.json at repo root: declare LuaJIT runtime, project require
paths (so require('full.hello.hello_pb') resolves), ignored
directories (.rocks, generated dylibs, bench/starwing third-party).
- runtime/pb/_types.lua (@meta): foundational @class declarations
for the descriptor contract (pb.Descriptor, pb.Field, pb.Enum-
Descriptor, pb.OneofDescriptor), the public pb module surface
(pb.Module), lazy view classes (pb.MessageView / pb.ArrayView /
pb.MapView), gRPC transport contract (pb.GrpcTransport plus
Service / Method descriptors), and the json / text / wire
sub-modules. Mirrors docs/codegen.md's descriptor shape.
- runtime/pb/init.lua: @type pb.Module annotation on the returned
table so hover on pb.encode / pb.decode_lazy / pb.parse picks up
the signatures from _types.lua.
- runtime/pb/lazy.lua: @class annotations on the three view locals
so lua-language-server merges them with the pb.MessageView /
pb.ArrayView / pb.MapView declarations in _types.lua.
Next phases: annotate codec/grpc/json (phase 2), emit per-message
@class blocks from the plugin codegen (phase 3).
Eugene Blikh <bigbes@gmail.com> — 2026-05-23 09:28:34 UTC
Commit 8721548da9dc69a1e0bc110023db3ecadb722f3c —
view raw patch
Parent(s):
5c541416
| File | Status | + | − |
|---|---|---|---|
.luarc.json
|
A | +35 | |
runtime/pb/_types.lua
|
A | +218 | |
runtime/pb/init.lua
|
M | +1 | |
runtime/pb/lazy.lua
|
M | +3 |