markdown-lsp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +104 -0
  3. package/bin/markdown-lsp +2 -0
  4. package/dist/ai/config.d.ts +9 -0
  5. package/dist/ai/config.d.ts.map +1 -0
  6. package/dist/ai/config.js +19 -0
  7. package/dist/ai/config.js.map +1 -0
  8. package/dist/ai/embeddings.d.ts +7 -0
  9. package/dist/ai/embeddings.d.ts.map +1 -0
  10. package/dist/ai/embeddings.js +27 -0
  11. package/dist/ai/embeddings.js.map +1 -0
  12. package/dist/ai/extract.d.ts +58 -0
  13. package/dist/ai/extract.d.ts.map +1 -0
  14. package/dist/ai/extract.js +58 -0
  15. package/dist/ai/extract.js.map +1 -0
  16. package/dist/ai/gateway.d.ts +5 -0
  17. package/dist/ai/gateway.d.ts.map +1 -0
  18. package/dist/ai/gateway.js +18 -0
  19. package/dist/ai/gateway.js.map +1 -0
  20. package/dist/bridge/inMemoryGraph.d.ts +32 -0
  21. package/dist/bridge/inMemoryGraph.d.ts.map +1 -0
  22. package/dist/bridge/inMemoryGraph.js +94 -0
  23. package/dist/bridge/inMemoryGraph.js.map +1 -0
  24. package/dist/core/documentSymbols.d.ts +33 -0
  25. package/dist/core/documentSymbols.d.ts.map +1 -0
  26. package/dist/core/documentSymbols.js +113 -0
  27. package/dist/core/documentSymbols.js.map +1 -0
  28. package/dist/core/findReferences.d.ts +38 -0
  29. package/dist/core/findReferences.d.ts.map +1 -0
  30. package/dist/core/findReferences.js +59 -0
  31. package/dist/core/findReferences.js.map +1 -0
  32. package/dist/core/index.d.ts +3 -0
  33. package/dist/core/index.d.ts.map +1 -0
  34. package/dist/core/index.js +3 -0
  35. package/dist/core/index.js.map +1 -0
  36. package/dist/db/client.d.ts +6 -0
  37. package/dist/db/client.d.ts.map +1 -0
  38. package/dist/db/client.js +22 -0
  39. package/dist/db/client.js.map +1 -0
  40. package/dist/db/schema.d.ts +812 -0
  41. package/dist/db/schema.d.ts.map +1 -0
  42. package/dist/db/schema.js +118 -0
  43. package/dist/db/schema.js.map +1 -0
  44. package/dist/indexer/indexer.d.ts +24 -0
  45. package/dist/indexer/indexer.d.ts.map +1 -0
  46. package/dist/indexer/indexer.js +248 -0
  47. package/dist/indexer/indexer.js.map +1 -0
  48. package/dist/indexer/parseMarkdown.d.ts +30 -0
  49. package/dist/indexer/parseMarkdown.d.ts.map +1 -0
  50. package/dist/indexer/parseMarkdown.js +191 -0
  51. package/dist/indexer/parseMarkdown.js.map +1 -0
  52. package/dist/server.d.ts +2 -0
  53. package/dist/server.d.ts.map +1 -0
  54. package/dist/server.js +343 -0
  55. package/dist/server.js.map +1 -0
  56. package/package.json +82 -0
  57. package/src/db/migrations/0000_init.sql +94 -0
@@ -0,0 +1,113 @@
1
+ import { eq, and } from "drizzle-orm";
2
+ import { db } from "../db/client.js";
3
+ import { documents, sections } from "../db/schema.js";
4
+ export async function getDocumentSymbols(workspace, relPath) {
5
+ const doc = await db
6
+ .select()
7
+ .from(documents)
8
+ .where(and(eq(documents.workspaceId, workspace.id), eq(documents.path, relPath)))
9
+ .limit(1);
10
+ if (doc.length === 0)
11
+ return [];
12
+ const secs = await db
13
+ .select()
14
+ .from(sections)
15
+ .where(eq(sections.documentId, doc[0].id));
16
+ secs.sort((a, b) => a.positionStartLine - b.positionStartLine);
17
+ const root = [];
18
+ const stack = [];
19
+ for (const s of secs) {
20
+ if (s.level === 0)
21
+ continue;
22
+ const name = s.headingPath[s.headingPath.length - 1] ?? "(untitled)";
23
+ const node = {
24
+ name,
25
+ level: s.level,
26
+ anchor: s.anchor,
27
+ range: {
28
+ startLine: s.positionStartLine,
29
+ startCol: s.positionStartCol,
30
+ endLine: s.positionEndLine,
31
+ endCol: s.positionEndCol,
32
+ },
33
+ selectionRange: {
34
+ startLine: s.positionStartLine,
35
+ startCol: s.positionStartCol,
36
+ endLine: s.positionStartLine,
37
+ endCol: s.positionStartCol + name.length + s.level + 1,
38
+ },
39
+ children: [],
40
+ };
41
+ while (stack.length > 0 && stack[stack.length - 1].level >= s.level)
42
+ stack.pop();
43
+ if (stack.length === 0)
44
+ root.push(node);
45
+ else
46
+ stack[stack.length - 1].children.push(node);
47
+ stack.push(node);
48
+ }
49
+ return root;
50
+ }
51
+ function subsequenceMatch(query, target) {
52
+ if (!query)
53
+ return true;
54
+ const q = query.toLowerCase();
55
+ const t = target.toLowerCase();
56
+ let qi = 0;
57
+ for (let ti = 0; ti < t.length && qi < q.length; ti++) {
58
+ if (t[ti] === q[qi])
59
+ qi++;
60
+ }
61
+ return qi === q.length;
62
+ }
63
+ export async function getWorkspaceSymbols(workspace, query, limit = 100) {
64
+ const allDocs = await db
65
+ .select()
66
+ .from(documents)
67
+ .where(eq(documents.workspaceId, workspace.id));
68
+ const docById = new Map(allDocs.map((d) => [d.id, d]));
69
+ const allSections = await db
70
+ .select()
71
+ .from(sections)
72
+ .where(eq(sections.workspaceId, workspace.id));
73
+ const out = [];
74
+ for (const s of allSections) {
75
+ if (s.level === 0)
76
+ continue;
77
+ const name = s.headingPath[s.headingPath.length - 1] ?? "";
78
+ if (!subsequenceMatch(query, name))
79
+ continue;
80
+ const doc = docById.get(s.documentId);
81
+ if (!doc)
82
+ continue;
83
+ const container = s.headingPath.length > 1 ? s.headingPath.slice(0, -1).join(" / ") : null;
84
+ out.push({
85
+ name,
86
+ containerName: container,
87
+ documentPath: doc.path,
88
+ range: {
89
+ startLine: s.positionStartLine,
90
+ startCol: s.positionStartCol,
91
+ endLine: s.positionEndLine,
92
+ endCol: s.positionEndCol,
93
+ },
94
+ });
95
+ if (out.length >= limit)
96
+ break;
97
+ }
98
+ for (const d of allDocs) {
99
+ const title = d.title ?? d.path;
100
+ if (!subsequenceMatch(query, title))
101
+ continue;
102
+ out.push({
103
+ name: title,
104
+ containerName: d.path,
105
+ documentPath: d.path,
106
+ range: { startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
107
+ });
108
+ if (out.length >= limit)
109
+ break;
110
+ }
111
+ return out;
112
+ }
113
+ //# sourceMappingURL=documentSymbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentSymbols.js","sourceRoot":"","sources":["../../src/core/documentSymbols.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { WorkspaceRef } from "../indexer/indexer.js";
2
+ export interface ReferenceHit {
3
+ documentPath: string;
4
+ range: {
5
+ startLine: number;
6
+ startCol: number;
7
+ endLine: number;
8
+ endCol: number;
9
+ };
10
+ text: string | null;
11
+ }
12
+ export declare function findReferencesToDocument(workspace: WorkspaceRef, toDocId: string): Promise<ReferenceHit[]>;
13
+ export interface ResolvedLinkTarget {
14
+ documentPath: string;
15
+ anchor: string | null;
16
+ }
17
+ export declare function resolveLinkByTarget(workspace: WorkspaceRef, toPath: string): Promise<ResolvedLinkTarget | null>;
18
+ export interface UnresolvedLink {
19
+ fromDocumentPath: string;
20
+ toPath: string;
21
+ range: {
22
+ startLine: number;
23
+ startCol: number;
24
+ endLine: number;
25
+ endCol: number;
26
+ } | null;
27
+ kind: "inline" | "reference" | "wiki" | "autolink";
28
+ }
29
+ export declare function findUnresolvedLinks(workspace: WorkspaceRef, forDocPath?: string): Promise<UnresolvedLink[]>;
30
+ export declare function getDocumentByPath(workspace: WorkspaceRef, relPath: string): Promise<{
31
+ id: string;
32
+ workspaceId: string;
33
+ path: string;
34
+ contentHash: string;
35
+ title: string | null;
36
+ lastIndexedAt: Date;
37
+ } | null>;
38
+ //# sourceMappingURL=findReferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findReferences.d.ts","sourceRoot":"","sources":["../../src/core/findReferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,EAAE,CAAC,CAYzB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CASpC;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACtF,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;CACnD;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,YAAY,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;;;;;;;UAO/E"}
@@ -0,0 +1,59 @@
1
+ import { eq, and, isNull } from "drizzle-orm";
2
+ import { db } from "../db/client.js";
3
+ import { documents, links } from "../db/schema.js";
4
+ export async function findReferencesToDocument(workspace, toDocId) {
5
+ const rows = await db
6
+ .select({ link: links, doc: documents })
7
+ .from(links)
8
+ .innerJoin(documents, eq(documents.id, links.fromDocumentId))
9
+ .where(and(eq(links.workspaceId, workspace.id), eq(links.toDocumentId, toDocId)));
10
+ return rows.map((r) => ({
11
+ documentPath: r.doc.path,
12
+ range: { startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
13
+ text: r.link.textAtLink,
14
+ }));
15
+ }
16
+ export async function resolveLinkByTarget(workspace, toPath) {
17
+ const rows = await db
18
+ .select({ link: links, doc: documents })
19
+ .from(links)
20
+ .leftJoin(documents, eq(documents.id, links.toDocumentId))
21
+ .where(and(eq(links.workspaceId, workspace.id), eq(links.toPath, toPath)))
22
+ .limit(1);
23
+ if (rows.length === 0 || !rows[0].doc)
24
+ return null;
25
+ return { documentPath: rows[0].doc.path, anchor: rows[0].link.toAnchor };
26
+ }
27
+ export async function findUnresolvedLinks(workspace, forDocPath) {
28
+ const whereClauses = [eq(links.workspaceId, workspace.id), isNull(links.toDocumentId)];
29
+ if (forDocPath) {
30
+ const docRow = await db
31
+ .select({ id: documents.id })
32
+ .from(documents)
33
+ .where(and(eq(documents.workspaceId, workspace.id), eq(documents.path, forDocPath)))
34
+ .limit(1);
35
+ if (docRow.length === 0)
36
+ return [];
37
+ whereClauses.push(eq(links.fromDocumentId, docRow[0].id));
38
+ }
39
+ const rows = await db
40
+ .select({ link: links, doc: documents })
41
+ .from(links)
42
+ .innerJoin(documents, eq(documents.id, links.fromDocumentId))
43
+ .where(and(...whereClauses));
44
+ return rows.map((r) => ({
45
+ fromDocumentPath: r.doc.path,
46
+ toPath: r.link.toPath,
47
+ range: null,
48
+ kind: r.link.kind,
49
+ }));
50
+ }
51
+ export async function getDocumentByPath(workspace, relPath) {
52
+ const rows = await db
53
+ .select()
54
+ .from(documents)
55
+ .where(and(eq(documents.workspaceId, workspace.id), eq(documents.path, relPath)))
56
+ .limit(1);
57
+ return rows[0] ?? null;
58
+ }
59
+ //# sourceMappingURL=findReferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findReferences.js","sourceRoot":"","sources":["../../src/core/findReferences.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./documentSymbols.js";
2
+ export * from "./findReferences.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./documentSymbols.js";
2
+ export * from "./findReferences.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { drizzle } from "drizzle-orm/postgres-js";
2
+ import * as schema from "./schema.js";
3
+ type DbClient = ReturnType<typeof drizzle<typeof schema>>;
4
+ export declare const db: DbClient;
5
+ export { schema };
6
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;AAgBzD,eAAO,MAAM,EAAE,EAAE,QAKH,CAAA;AAEd,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,22 @@
1
+ import postgres from "postgres";
2
+ import { drizzle } from "drizzle-orm/postgres-js";
3
+ import * as schema from "./schema.js";
4
+ let _db = null;
5
+ let _queryClient = null;
6
+ function init() {
7
+ const connectionString = process.env.DATABASE_URL;
8
+ if (!connectionString) {
9
+ throw new Error("DATABASE_URL is not set. Configure markdownLsp.databaseUrl in VS Code settings, or set DATABASE_URL in the environment.");
10
+ }
11
+ _queryClient = postgres(connectionString, { max: 5 });
12
+ return drizzle(_queryClient, { schema });
13
+ }
14
+ export const db = new Proxy({}, {
15
+ get(_target, prop) {
16
+ if (!_db)
17
+ _db = init();
18
+ return _db[prop];
19
+ },
20
+ });
21
+ export { schema };
22
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAIrC,IAAI,GAAG,GAAoB,IAAI,CAAA;AAC/B,IAAI,YAAY,GAAuC,IAAI,CAAA;AAE3D,SAAS,IAAI;IACX,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;IACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yHAAyH,CAC1H,CAAA;IACH,CAAC;IACD,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IACrD,OAAO,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAa,IAAI,KAAK,CAAC,EAAc,EAAE;IACpD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,IAAI,CAAC,GAAG;YAAE,GAAG,GAAG,IAAI,EAAE,CAAA;QACtB,OAAQ,GAAW,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CACF,CAAa,CAAA;AAEd,OAAO,EAAE,MAAM,EAAE,CAAA"}