@macroforge/mcp-server 0.1.33 → 0.1.35
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.
- package/README.md +68 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/docs-loader.d.ts +133 -5
- package/dist/tools/docs-loader.d.ts.map +1 -1
- package/dist/tools/docs-loader.js +131 -15
- package/dist/tools/docs-loader.js.map +1 -1
- package/dist/tools/index.d.ts +48 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +163 -14
- package/dist/tools/index.js.map +1 -1
- package/docs/api/api-overview.md +24 -46
- package/docs/api/expand-sync.md +24 -51
- package/docs/api/native-plugin.md +24 -56
- package/docs/api/position-mapper.md +34 -76
- package/docs/api/transform-sync.md +27 -59
- package/docs/builtin-macros/clone.md +45 -104
- package/docs/builtin-macros/debug.md +33 -104
- package/docs/builtin-macros/default.md +78 -114
- package/docs/builtin-macros/deserialize.md +93 -273
- package/docs/builtin-macros/hash.md +58 -100
- package/docs/builtin-macros/macros-overview.md +42 -103
- package/docs/builtin-macros/ord.md +65 -133
- package/docs/builtin-macros/partial-eq.md +53 -179
- package/docs/builtin-macros/partial-ord.md +67 -159
- package/docs/builtin-macros/serialize.md +64 -194
- package/docs/concepts/architecture.md +40 -99
- package/docs/concepts/derive-system.md +129 -125
- package/docs/concepts/how-macros-work.md +52 -84
- package/docs/custom-macros/custom-overview.md +17 -39
- package/docs/custom-macros/rust-setup.md +22 -55
- package/docs/custom-macros/ts-macro-derive.md +43 -107
- package/docs/custom-macros/ts-quote.md +177 -507
- package/docs/getting-started/first-macro.md +108 -33
- package/docs/getting-started/installation.md +32 -73
- package/docs/integration/cli.md +70 -156
- package/docs/integration/configuration.md +32 -75
- package/docs/integration/integration-overview.md +16 -55
- package/docs/integration/mcp-server.md +30 -69
- package/docs/integration/svelte-preprocessor.md +60 -83
- package/docs/integration/typescript-plugin.md +32 -74
- package/docs/integration/vite-plugin.md +30 -79
- package/docs/language-servers/ls-overview.md +22 -46
- package/docs/language-servers/svelte.md +30 -69
- package/docs/language-servers/zed.md +34 -72
- package/docs/roadmap/roadmap.md +54 -130
- package/docs/sections.json +3 -262
- package/package.json +2 -2
package/dist/tools/index.js
CHANGED
|
@@ -1,8 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module tools
|
|
3
|
+
*
|
|
4
|
+
* MCP Tool Registry and Request Handlers
|
|
5
|
+
*
|
|
6
|
+
* This module registers and implements all MCP tools exposed by the Macroforge server.
|
|
7
|
+
* It serves as the main business logic layer, handling tool requests from MCP clients.
|
|
8
|
+
*
|
|
9
|
+
* ## Registered Tools
|
|
10
|
+
*
|
|
11
|
+
* | Tool | Purpose |
|
|
12
|
+
* |------|---------|
|
|
13
|
+
* | `list-sections` | List all documentation sections with metadata |
|
|
14
|
+
* | `get-documentation` | Retrieve full content for specific sections |
|
|
15
|
+
* | `macroforge-autofixer` | Validate TypeScript code with @derive decorators |
|
|
16
|
+
* | `expand-code` | Expand macros and show generated code |
|
|
17
|
+
* | `get-macro-info` | Get documentation for macros and decorators |
|
|
18
|
+
*
|
|
19
|
+
* ## Architecture
|
|
20
|
+
*
|
|
21
|
+
* The module uses:
|
|
22
|
+
* - `docs-loader.js` for documentation loading and search
|
|
23
|
+
* - `@macroforge/core` (optional) for native code validation and expansion
|
|
24
|
+
*
|
|
25
|
+
* Native bindings are loaded dynamically and gracefully degrade if unavailable.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link registerTools} for the main entry point
|
|
28
|
+
*/
|
|
1
29
|
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
30
|
import { loadSections, getSection, searchSections } from './docs-loader.js';
|
|
31
|
+
/** Cached documentation sections loaded at server startup */
|
|
3
32
|
let sections = [];
|
|
4
33
|
/**
|
|
5
|
-
*
|
|
34
|
+
* Registers all Macroforge MCP tools with the server instance.
|
|
35
|
+
*
|
|
36
|
+
* This function:
|
|
37
|
+
* 1. Loads documentation sections from disk
|
|
38
|
+
* 2. Registers a `tools/list` handler returning all available tools
|
|
39
|
+
* 3. Registers a `tools/call` handler routing requests to appropriate handlers
|
|
40
|
+
*
|
|
41
|
+
* The tools registered provide documentation access and code analysis capabilities
|
|
42
|
+
* for AI assistants working with Macroforge.
|
|
43
|
+
*
|
|
44
|
+
* @param server - The MCP Server instance to register tools with
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
49
|
+
* import { registerTools } from './tools/index.js';
|
|
50
|
+
*
|
|
51
|
+
* const server = new Server({ name: 'macroforge', version: '1.0.0' }, { capabilities: { tools: {} } });
|
|
52
|
+
* registerTools(server);
|
|
53
|
+
* ```
|
|
6
54
|
*/
|
|
7
55
|
export function registerTools(server) {
|
|
8
56
|
// Load documentation sections
|
|
@@ -165,8 +213,16 @@ Use with a name parameter to get info for a specific macro or decorator.`,
|
|
|
165
213
|
});
|
|
166
214
|
}
|
|
167
215
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
216
|
+
* Handles the `list-sections` tool call.
|
|
217
|
+
*
|
|
218
|
+
* Returns a formatted list of all available documentation sections, filtering out
|
|
219
|
+
* sub-chunks to show only top-level sections. Each section displays its title,
|
|
220
|
+
* use cases, file path, and category.
|
|
221
|
+
*
|
|
222
|
+
* Sub-chunks (sections with a `parent_id`) are excluded from this list as they
|
|
223
|
+
* are accessed through their parent section via `get-documentation`.
|
|
224
|
+
*
|
|
225
|
+
* @returns MCP response with formatted text listing all sections
|
|
170
226
|
*/
|
|
171
227
|
function handleListSections() {
|
|
172
228
|
// Filter out sub-chunks (sections with parent_id) - only show top-level sections
|
|
@@ -184,8 +240,23 @@ function handleListSections() {
|
|
|
184
240
|
};
|
|
185
241
|
}
|
|
186
242
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
243
|
+
* Handles the `get-documentation` tool call.
|
|
244
|
+
*
|
|
245
|
+
* Retrieves full documentation content for one or more sections. Supports flexible
|
|
246
|
+
* lookups by ID, title, or partial match.
|
|
247
|
+
*
|
|
248
|
+
* ## Chunked Section Handling
|
|
249
|
+
*
|
|
250
|
+
* For large documentation sections that are split into chunks:
|
|
251
|
+
* 1. Returns the first chunk's content as the main response
|
|
252
|
+
* 2. Appends a list of additional chunk IDs that can be requested separately
|
|
253
|
+
*
|
|
254
|
+
* This allows clients to progressively load large documentation without
|
|
255
|
+
* overwhelming context windows.
|
|
256
|
+
*
|
|
257
|
+
* @param args - Tool arguments
|
|
258
|
+
* @param args.section - Section name(s) to retrieve (string or array of strings)
|
|
259
|
+
* @returns MCP response with formatted markdown documentation content
|
|
189
260
|
*/
|
|
190
261
|
function handleGetDocumentation(args) {
|
|
191
262
|
const sectionNames = Array.isArray(args.section) ? args.section : [args.section];
|
|
@@ -269,8 +340,29 @@ function handleGetDocumentation(args) {
|
|
|
269
340
|
};
|
|
270
341
|
}
|
|
271
342
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
343
|
+
* Handles the `macroforge-autofixer` tool call.
|
|
344
|
+
*
|
|
345
|
+
* Validates TypeScript code containing @derive decorators using Macroforge's
|
|
346
|
+
* native Rust-based analyzer. Returns structured JSON diagnostics that clients
|
|
347
|
+
* can use to provide error messages and fix suggestions.
|
|
348
|
+
*
|
|
349
|
+
* ## Diagnostic Levels
|
|
350
|
+
*
|
|
351
|
+
* - `error` - Invalid code that will fail to compile
|
|
352
|
+
* - `warning` - Code that works but may have issues
|
|
353
|
+
* - `info` - Informational messages about the code
|
|
354
|
+
*
|
|
355
|
+
* ## Response Format
|
|
356
|
+
*
|
|
357
|
+
* Returns JSON with:
|
|
358
|
+
* - `diagnostics` - Array of issues with location, message, and help text
|
|
359
|
+
* - `summary` - Counts of errors, warnings, and info messages
|
|
360
|
+
* - `require_another_tool_call_after_fixing` - True if errors exist (should revalidate)
|
|
361
|
+
*
|
|
362
|
+
* @param args - Tool arguments
|
|
363
|
+
* @param args.code - TypeScript source code to validate
|
|
364
|
+
* @param args.filename - Optional filename for error messages (default: "input.ts")
|
|
365
|
+
* @returns MCP response with JSON-formatted diagnostics
|
|
274
366
|
*/
|
|
275
367
|
async function handleAutofixer(args) {
|
|
276
368
|
const filename = args.filename || 'input.ts';
|
|
@@ -339,8 +431,23 @@ async function handleAutofixer(args) {
|
|
|
339
431
|
}
|
|
340
432
|
}
|
|
341
433
|
/**
|
|
342
|
-
*
|
|
343
|
-
*
|
|
434
|
+
* Handles the `expand-code` tool call.
|
|
435
|
+
*
|
|
436
|
+
* Expands Macroforge macros in TypeScript code and returns the transformed result.
|
|
437
|
+
* This is useful for understanding what code the macros generate and debugging
|
|
438
|
+
* macro expansion issues.
|
|
439
|
+
*
|
|
440
|
+
* ## Output Format
|
|
441
|
+
*
|
|
442
|
+
* Returns human-readable markdown with:
|
|
443
|
+
* - The fully expanded TypeScript code in a code block
|
|
444
|
+
* - Any diagnostics (errors, warnings, info) with line/column locations
|
|
445
|
+
* - Help text for fixing issues when available
|
|
446
|
+
*
|
|
447
|
+
* @param args - Tool arguments
|
|
448
|
+
* @param args.code - TypeScript source code with @derive decorators to expand
|
|
449
|
+
* @param args.filename - Optional filename for error messages (default: "input.ts")
|
|
450
|
+
* @returns MCP response with formatted expanded code and diagnostics
|
|
344
451
|
*/
|
|
345
452
|
async function handleExpandCode(args) {
|
|
346
453
|
const filename = args.filename || 'input.ts';
|
|
@@ -403,8 +510,25 @@ async function handleExpandCode(args) {
|
|
|
403
510
|
}
|
|
404
511
|
}
|
|
405
512
|
/**
|
|
406
|
-
*
|
|
407
|
-
*
|
|
513
|
+
* Handles the `get-macro-info` tool call.
|
|
514
|
+
*
|
|
515
|
+
* Retrieves documentation for Macroforge macros and field decorators from the
|
|
516
|
+
* native manifest. Can return info for a specific macro/decorator or the full
|
|
517
|
+
* manifest of all available macros and decorators.
|
|
518
|
+
*
|
|
519
|
+
* ## Usage Modes
|
|
520
|
+
*
|
|
521
|
+
* - **Without name**: Returns full manifest with all macros and decorators
|
|
522
|
+
* - **With name**: Returns detailed info for the specific macro or decorator
|
|
523
|
+
*
|
|
524
|
+
* ## Manifest Contents
|
|
525
|
+
*
|
|
526
|
+
* - **Macros**: @derive decorators like Debug, Serialize, Clone
|
|
527
|
+
* - **Decorators**: Field decorators like @serde.skip, @serde.rename
|
|
528
|
+
*
|
|
529
|
+
* @param args - Tool arguments
|
|
530
|
+
* @param args.name - Optional macro or decorator name to look up
|
|
531
|
+
* @returns MCP response with formatted macro/decorator documentation
|
|
408
532
|
*/
|
|
409
533
|
async function handleGetMacroInfo(args) {
|
|
410
534
|
try {
|
|
@@ -491,21 +615,46 @@ Available decorators: ${manifest.decorators.map(d => d.export).join(', ')}`,
|
|
|
491
615
|
// Helper functions
|
|
492
616
|
// ============================================================================
|
|
493
617
|
/**
|
|
494
|
-
*
|
|
618
|
+
* Dynamically imports the native Macroforge bindings.
|
|
619
|
+
*
|
|
620
|
+
* The @macroforge/core package is an optional peer dependency that provides
|
|
621
|
+
* native Rust-based code analysis and expansion. This function attempts to
|
|
622
|
+
* load it at runtime and gracefully returns null if unavailable.
|
|
623
|
+
*
|
|
624
|
+
* Using dynamic import allows the MCP server to run and serve documentation
|
|
625
|
+
* even when the native bindings are not installed.
|
|
626
|
+
*
|
|
627
|
+
* @returns The Macroforge module if available, or null if not installed
|
|
628
|
+
*
|
|
629
|
+
* @example
|
|
630
|
+
* ```typescript
|
|
631
|
+
* const macroforge = await importMacroforge();
|
|
632
|
+
* if (macroforge) {
|
|
633
|
+
* const result = macroforge.expandSync(code, 'input.ts', {});
|
|
634
|
+
* }
|
|
635
|
+
* ```
|
|
495
636
|
*/
|
|
496
637
|
async function importMacroforge() {
|
|
497
638
|
try {
|
|
498
|
-
// Dynamic import to avoid build-time errors
|
|
639
|
+
// Dynamic import to avoid build-time errors when @macroforge/core is not installed
|
|
499
640
|
// @ts-expect-error - dynamic import of optional dependency
|
|
500
641
|
const mod = await import('@macroforge/core');
|
|
501
642
|
return mod;
|
|
502
643
|
}
|
|
503
644
|
catch {
|
|
645
|
+
// Package not installed - return null to indicate unavailability
|
|
504
646
|
return null;
|
|
505
647
|
}
|
|
506
648
|
}
|
|
507
649
|
/**
|
|
508
|
-
*
|
|
650
|
+
* Normalizes a diagnostic level string to lowercase.
|
|
651
|
+
*
|
|
652
|
+
* The Rust analyzer returns levels as PascalCase ('Error', 'Warning', 'Info'),
|
|
653
|
+
* but JSON output should use lowercase ('error', 'warning', 'info') for
|
|
654
|
+
* consistency with common diagnostic formats.
|
|
655
|
+
*
|
|
656
|
+
* @param level - Diagnostic level from Rust (e.g., 'Error')
|
|
657
|
+
* @returns Lowercase level string (e.g., 'error')
|
|
509
658
|
*/
|
|
510
659
|
function normalizeLevel(level) {
|
|
511
660
|
return level.toLowerCase();
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/docs/api/api-overview.md
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
# API Reference
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
2
|
+
<span class="stats svelte-1c8t0id">52 exported items *Macroforge provides a programmatic API for expanding macros in TypeScript code.*
|
|
3
|
+
## Overview
|
|
4
|
+
```
|
|
8
5
|
import {
|
|
9
6
|
expandSync,
|
|
10
7
|
transformSync,
|
|
@@ -13,36 +10,23 @@ import {
|
|
|
13
10
|
NativePlugin,
|
|
14
11
|
PositionMapper
|
|
15
12
|
} from "macroforge";
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| [`
|
|
21
|
-
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
| `
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| Extract import information
|
|
31
|
-
|
|
32
|
-
## Classes
|
|
33
|
-
|
|
34
|
-
| [`NativePlugin`]({base}/docs/api/native-plugin)
|
|
35
|
-
| Stateful plugin with caching
|
|
36
|
-
|
|
37
|
-
| [`PositionMapper`]({base}/docs/api/position-mapper)
|
|
38
|
-
| Maps positions between original and expanded code
|
|
39
|
-
|
|
40
|
-
## Quick Example
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
13
|
+
``` ## Core Functions
|
|
14
|
+
| Function | Description |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| [`expandSync()`](../docs/api/expand-sync) | Expand macros synchronously |
|
|
17
|
+
| [`transformSync()`](../docs/api/transform-sync) | Transform code with additional metadata |
|
|
18
|
+
| `checkSyntax()` | Validate TypeScript syntax |
|
|
19
|
+
| `parseImportSources()` | Extract import information |
|
|
20
|
+
## Classes
|
|
21
|
+
| Class | Description |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| [`NativePlugin`](../docs/api/native-plugin) | Stateful plugin with caching |
|
|
24
|
+
| [`PositionMapper`](../docs/api/position-mapper) | Maps positions between original and expanded code |
|
|
25
|
+
## Quick Example
|
|
26
|
+
```
|
|
43
27
|
import { expandSync } from "macroforge";
|
|
44
28
|
|
|
45
|
-
const sourceCode =
|
|
29
|
+
const sourceCode = `
|
|
46
30
|
/** @derive(Debug) */
|
|
47
31
|
class User {
|
|
48
32
|
name: string;
|
|
@@ -50,7 +34,7 @@ class User {
|
|
|
50
34
|
this.name = name;
|
|
51
35
|
}
|
|
52
36
|
}
|
|
53
|
-
|
|
37
|
+
`;
|
|
54
38
|
|
|
55
39
|
const result = expandSync(sourceCode, "user.ts", {
|
|
56
40
|
keepDecorators: false
|
|
@@ -62,14 +46,8 @@ console.log(result.code);
|
|
|
62
46
|
if (result.diagnostics.length > 0) {
|
|
63
47
|
console.error("Errors:", result.diagnostics);
|
|
64
48
|
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
- [`
|
|
70
|
-
|
|
71
|
-
- [`transformSync()`]({base}/docs/api/transform-sync) - Transform with source maps
|
|
72
|
-
|
|
73
|
-
- [`NativePlugin`]({base}/docs/api/native-plugin) - Caching for language servers
|
|
74
|
-
|
|
75
|
-
- [`PositionMapper`]({base}/docs/api/position-mapper) - Position mapping utilities
|
|
49
|
+
``` ## Detailed Reference
|
|
50
|
+
- [`expandSync()`](../docs/api/expand-sync) - Full options and return types
|
|
51
|
+
- [`transformSync()`](../docs/api/transform-sync) - Transform with source maps
|
|
52
|
+
- [`NativePlugin`](../docs/api/native-plugin) - Caching for language servers
|
|
53
|
+
- [`PositionMapper`](../docs/api/position-mapper) - Position mapping utilities
|
package/docs/api/expand-sync.md
CHANGED
|
@@ -1,43 +1,26 @@
|
|
|
1
1
|
# expandSync()
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Signature
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
2
|
+
*Synchronously expands macros in TypeScript code. This is the standalone macro expansion function that doesn't use caching. For cached expansion, use [`NativePlugin::process_file`] instead.*
|
|
3
|
+
## Signature
|
|
4
|
+
```
|
|
8
5
|
function expandSync(
|
|
9
6
|
code: string,
|
|
10
7
|
filepath: string,
|
|
11
8
|
options?: ExpandOptions
|
|
12
9
|
): ExpandResult
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| `filepath`
|
|
22
|
-
| `string`
|
|
23
|
-
| File path (used for error reporting)
|
|
24
|
-
|
|
25
|
-
| `options`
|
|
26
|
-
| `ExpandOptions`
|
|
27
|
-
| Optional configuration
|
|
28
|
-
|
|
29
|
-
## ExpandOptions
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
10
|
+
``` ## Parameters
|
|
11
|
+
| Parameter | Type | Description |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| `code` | `string` | TypeScript source code to transform |
|
|
14
|
+
| `filepath` | `string` | File path (used for error reporting) |
|
|
15
|
+
| `options` | `ExpandOptions` | Optional configuration |
|
|
16
|
+
## ExpandOptions
|
|
17
|
+
```
|
|
32
18
|
interface ExpandOptions {
|
|
33
19
|
// Keep @derive decorators in output (default: false)
|
|
34
20
|
keepDecorators?: boolean;
|
|
35
21
|
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## ExpandResult
|
|
39
|
-
|
|
40
|
-
```typescript
|
|
22
|
+
``` ## ExpandResult
|
|
23
|
+
```
|
|
41
24
|
interface ExpandResult {
|
|
42
25
|
// Transformed TypeScript code
|
|
43
26
|
code: string;
|
|
@@ -54,11 +37,8 @@ interface ExpandResult {
|
|
|
54
37
|
// Position mapping data for source maps
|
|
55
38
|
sourceMapping?: SourceMappingResult;
|
|
56
39
|
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## MacroDiagnostic
|
|
60
|
-
|
|
61
|
-
```typescript
|
|
40
|
+
``` ## MacroDiagnostic
|
|
41
|
+
```
|
|
62
42
|
interface MacroDiagnostic {
|
|
63
43
|
message: string;
|
|
64
44
|
severity: "error" | "warning" | "info";
|
|
@@ -67,14 +47,11 @@ interface MacroDiagnostic {
|
|
|
67
47
|
end: number;
|
|
68
48
|
};
|
|
69
49
|
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Example
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
50
|
+
``` ## Example
|
|
51
|
+
```
|
|
75
52
|
import { expandSync } from "macroforge";
|
|
76
53
|
|
|
77
|
-
const sourceCode =
|
|
54
|
+
const sourceCode = `
|
|
78
55
|
/** @derive(Debug) */
|
|
79
56
|
class User {
|
|
80
57
|
name: string;
|
|
@@ -85,7 +62,7 @@ class User {
|
|
|
85
62
|
this.age = age;
|
|
86
63
|
}
|
|
87
64
|
}
|
|
88
|
-
|
|
65
|
+
`;
|
|
89
66
|
|
|
90
67
|
const result = expandSync(sourceCode, "user.ts");
|
|
91
68
|
|
|
@@ -99,21 +76,17 @@ if (result.types) {
|
|
|
99
76
|
|
|
100
77
|
if (result.diagnostics.length > 0) {
|
|
101
78
|
for (const diag of result.diagnostics) {
|
|
102
|
-
console.log(
|
|
79
|
+
console.log(`[${diag.severity}] ${diag.message}`);
|
|
103
80
|
}
|
|
104
81
|
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Syntax errors and macro errors are returned in the `diagnostics` array, not thrown as exceptions:
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
82
|
+
``` ## Error Handling
|
|
83
|
+
Syntax errors and macro errors are returned in the `diagnostics` array, not thrown as exceptions:
|
|
84
|
+
```
|
|
112
85
|
const result = expandSync(invalidCode, "file.ts");
|
|
113
86
|
|
|
114
87
|
for (const diag of result.diagnostics) {
|
|
115
88
|
if (diag.severity === "error") {
|
|
116
|
-
console.error(
|
|
89
|
+
console.error(`Error at ${diag.span.start}: ${diag.message}`);
|
|
117
90
|
}
|
|
118
91
|
}
|
|
119
92
|
```
|
|
@@ -1,67 +1,41 @@
|
|
|
1
1
|
# NativePlugin
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Constructor
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
2
|
+
*The main plugin class for macro expansion with caching support. `NativePlugin` is designed to be instantiated once and reused across multiple file processing operations. It maintains a cache of expansion results keyed by filepath and version, enabling efficient incremental processing.*
|
|
3
|
+
## Constructor
|
|
4
|
+
```
|
|
8
5
|
const plugin = new NativePlugin();
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### processFile()
|
|
14
|
-
|
|
15
|
-
Process a file with version-based caching:
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
6
|
+
``` ## Methods
|
|
7
|
+
### processFile()
|
|
8
|
+
Process a file with version-based caching:
|
|
9
|
+
```
|
|
18
10
|
processFile(
|
|
19
11
|
filepath: string,
|
|
20
12
|
code: string,
|
|
21
13
|
options?: ProcessFileOptions
|
|
22
14
|
): ExpandResult
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
15
|
+
``` ```
|
|
26
16
|
interface ProcessFileOptions {
|
|
27
17
|
// Cache key - if unchanged, returns cached result
|
|
28
18
|
version?: string;
|
|
29
19
|
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Get the position mapper for a previously processed file:
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
20
|
+
``` ### getMapper()
|
|
21
|
+
Get the position mapper for a previously processed file:
|
|
22
|
+
```
|
|
37
23
|
getMapper(filepath: string): NativeMapper | null
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
Map diagnostics from expanded positions to original positions:
|
|
43
|
-
|
|
44
|
-
```typescript
|
|
24
|
+
``` ### mapDiagnostics()
|
|
25
|
+
Map diagnostics from expanded positions to original positions:
|
|
26
|
+
```
|
|
45
27
|
mapDiagnostics(
|
|
46
28
|
filepath: string,
|
|
47
29
|
diagnostics: JsDiagnostic[]
|
|
48
30
|
): JsDiagnostic[]
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Logging utilities for debugging:
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
31
|
+
``` ### log() / setLogFile()
|
|
32
|
+
Logging utilities for debugging:
|
|
33
|
+
```
|
|
56
34
|
log(message: string): void
|
|
57
35
|
setLogFile(path: string): void
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
The plugin caches expansion results by file path and version:
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
36
|
+
``` ## Caching Behavior
|
|
37
|
+
The plugin caches expansion results by file path and version:
|
|
38
|
+
```
|
|
65
39
|
const plugin = new NativePlugin();
|
|
66
40
|
|
|
67
41
|
// First call - performs expansion
|
|
@@ -72,11 +46,8 @@ const result2 = plugin.processFile("user.ts", code, { version: "1" });
|
|
|
72
46
|
|
|
73
47
|
// Different version - re-expands
|
|
74
48
|
const result3 = plugin.processFile("user.ts", newCode, { version: "2" });
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Example: Language Server Integration
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
49
|
+
``` ## Example: Language Server Integration
|
|
50
|
+
```
|
|
80
51
|
import { NativePlugin } from "macroforge";
|
|
81
52
|
|
|
82
53
|
class MacroforgeLanguageService {
|
|
@@ -99,8 +70,5 @@ class MacroforgeLanguageService {
|
|
|
99
70
|
return this.plugin.mapDiagnostics(uri, diagnostics);
|
|
100
71
|
}
|
|
101
72
|
}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Thread Safety
|
|
105
|
-
|
|
106
|
-
The `NativePlugin` class is thread-safe and can be used from multiple async contexts. Each file is processed in an isolated thread with its own stack space.
|
|
73
|
+
``` ## Thread Safety
|
|
74
|
+
The `NativePlugin` class is thread-safe and can be used from multiple async contexts. Each file is processed in an isolated thread with its own stack space.
|