wip: symbols for lsp

This commit is contained in:
Dax Raad 2025-07-02 11:35:25 -04:00
parent fa35407572
commit c810b6d206

View file

@ -4,10 +4,34 @@ import { LSPClient } from "./client"
import path from "path"
import { LSPServer } from "./server"
import { Ripgrep } from "../file/ripgrep"
import { z } from "zod"
export namespace LSP {
const log = Log.create({ service: "lsp" })
export const Symbol = z
.object({
name: z.string(),
kind: z.number(),
location: z.object({
uri: z.string(),
range: z.object({
start: z.object({
line: z.number(),
character: z.number(),
}),
end: z.object({
line: z.number(),
character: z.number(),
}),
}),
}),
})
.openapi({
ref: "LSP.Symbol",
})
export type Symbol = z.infer<typeof Symbol>
const state = App.state(
"lsp",
async (app) => {
@ -96,7 +120,7 @@ export namespace LSP {
client.connection.sendRequest("workspace/symbol", {
query,
}),
)
).then((result) => result.flat() as LSP.Symbol[])
}
async function run<T>(