From 39b3febed8af640ad189d106e78850798126de1a Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck Date: Sat, 13 Jun 2026 20:13:14 +0200 Subject: [PATCH] feat: add Magik language support --- CHANGELOG.md | 1 + README.md | 3 +- __tests__/extraction.test.ts | 116 +++++++++ src/extraction/grammars.ts | 5 +- src/extraction/languages/index.ts | 2 + src/extraction/languages/magik.ts | 274 +++++++++++++++++++++ src/extraction/wasm/tree-sitter-magik.wasm | Bin 0 -> 517950 bytes src/types.ts | 1 + 8 files changed, 400 insertions(+), 2 deletions(-) create mode 100644 src/extraction/languages/magik.ts create mode 100755 src/extraction/wasm/tree-sitter-magik.wasm diff --git a/CHANGELOG.md b/CHANGELOG.md index 89ada7950..2f1cf7d97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - New `codegraph list` and `codegraph stop` commands for managing the background daemon. `codegraph list` (alias `ps`) shows every running CodeGraph daemon — project, pid, version, uptime — with `--json` for scripting. `codegraph stop` stops the daemon for the current project (or `codegraph stop `, or `codegraph stop --all` to stop every daemon on the machine). Previously the only way to shut a daemon down was to hunt for its pid and `kill` it by hand. (#845) - The CodeGraph MCP server now self-heals if its main thread ever locks up. A lightweight watchdog notices when the process has stopped responding and stops it so a fresh one starts on your next request — it can no longer sit pinned at 100% CPU with no way to recover. Tune the detection window with `CODEGRAPH_WATCHDOG_TIMEOUT_MS`, or turn it off entirely with `CODEGRAPH_NO_WATCHDOG=1`. (#850) +- CodeGraph now indexes **Magik** (`.magik`) — the SmallWorld/GE Smallworld language used in GIS and asset management platforms. Exemplar definitions (`define_slotted_exemplar`, `define_mixin`, and related forms) are extracted as class nodes, `_method` declarations as methods with their exemplar as the receiver type, named `_proc` blocks as functions, `_package` declarations as namespaces, and inline `##` docstrings are preserved. Call edges are tracked across methods and procedures. ### Fixes diff --git a/README.md b/README.md index 09f1f4209..faf7f77a8 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ CodeGraph cuts **tokens, tool calls, and wall-clock time on every repo** — acr | **Full-Text Search** | Find code by name instantly across your entire codebase, powered by FTS5 | | **Impact Analysis** | Trace callers, callees, and the full impact radius of any symbol before making changes | | **Always Fresh** | File watcher uses native OS events (FSEvents/inotify/ReadDirectoryChangesW) with debounced auto-sync — the graph stays current as you code, zero config | -| **20+ Languages** | TypeScript, JavaScript, Python, Go, Rust, Java, C#, PHP, Ruby, C, C++, Objective-C, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Svelte, Vue, Astro, Liquid, Pascal/Delphi | +| **20+ Languages** | TypeScript, JavaScript, Python, Go, Rust, Java, C#, PHP, Ruby, C, C++, Objective-C, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Svelte, Vue, Astro, Liquid, Pascal/Delphi, Magik | | **Framework-aware Routes** | Recognizes web-framework routing files and links URL patterns to their handlers across 17 frameworks | | **Mixed iOS / React Native / Expo** | Closes cross-language flows that static parsing misses: Swift ↔ ObjC bridging, React Native legacy bridge + TurboModules + Fabric view components, native → JS event emitters, Expo Modules | | **100% Local** | No data leaves your machine. No API keys. No external services. SQLite database only | @@ -673,6 +673,7 @@ is written): | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | +| Magik | `.magik` | Full support (exemplars as classes, methods with receiver types, named procedures, inline `##` docstrings, call edges) | ## Measured cross-file coverage diff --git a/__tests__/extraction.test.ts b/__tests__/extraction.test.ts index df825f529..334e60102 100644 --- a/__tests__/extraction.test.ts +++ b/__tests__/extraction.test.ts @@ -7161,3 +7161,119 @@ GeomPoint <- ggproto("GeomPoint", Geom, }); }); }); + +// ─── Magik ────────────────────────────────────────────────────────────────── + +describe('Magik Extraction', () => { + describe('Language detection', () => { + it('detects .magik files', () => { + expect(detectLanguage('my_class.magik')).toBe('magik'); + }); + }); + + it('extracts an exemplar as a class node', () => { + const code = ` +_package sw + +define_slotted_exemplar(:my_class, +\t{:slot_a, _unset}, +\t{}) +$ +`; + const result = extractFromSource('my_class.magik', code); + const cls = result.nodes.find((n) => n.kind === 'class'); + expect(cls).toBeDefined(); + expect(cls?.name).toBe('my_class'); + // Namespace from _package declaration + const ns = result.nodes.find((n) => n.kind === 'namespace'); + expect(ns?.name).toBe('sw'); + expect(cls?.qualifiedName).toContain('my_class'); + }); + + it('extracts methods with exemplar receiver', () => { + const code = ` +_package sw + +_method my_class.my_method(x, y) +\t## Adds two numbers. +\t_local z << x + y +\t_return z +_endmethod +$ + +_method my_class.init(a_name) +\t_return _self +_endmethod +$ +`; + const result = extractFromSource('my_class.magik', code); + const methods = result.nodes.filter((n) => n.kind === 'method'); + expect(methods.length).toBe(2); + + const myMethod = methods.find((n) => n.name === 'my_method'); + expect(myMethod).toBeDefined(); + expect(myMethod?.qualifiedName).toBe('my_class::my_method'); + expect(myMethod?.signature).toBe('(x, y)'); + expect(myMethod?.docstring).toBe('Adds two numbers.'); + + const initMethod = methods.find((n) => n.name === 'init'); + expect(initMethod).toBeDefined(); + expect(initMethod?.qualifiedName).toBe('my_class::init'); + expect(initMethod?.signature).toBe('(a_name)'); + }); + + it('extracts a named procedure as a function', () => { + const code = ` +_package sw + +_proc @my_procedure(a, b) +\t## A standalone procedure. +\t_return a * b +_endproc +$ +`; + const result = extractFromSource('utils.magik', code); + const fn = result.nodes.find((n) => n.kind === 'function'); + expect(fn).toBeDefined(); + expect(fn?.name).toBe('my_procedure'); + expect(fn?.signature).toBe('(a, b)'); + expect(fn?.docstring).toBe('A standalone procedure.'); + expect(fn?.qualifiedName).toContain('my_procedure'); + }); + + it('extracts call edges from method bodies', () => { + const code = ` +_package sw + +_method my_class.another_method() +\t_return _self.my_method(1, 2) +_endmethod +$ +`; + const result = extractFromSource('my_class.magik', code); + const callRef = result.unresolvedReferences.find( + (r) => r.referenceKind === 'calls' && r.referenceName === 'my_method' + ); + expect(callRef).toBeDefined(); + }); + + it('extracts a private method', () => { + const code = ` +_package sw + +_method my_class.do_internal() +\t_return 42 +_endmethod +$ + +_private _method my_class.secret() +\t_return _self.do_internal() +_endmethod +$ +`; + const result = extractFromSource('my_class.magik', code); + const secretMethod = result.nodes.find((n) => n.name === 'secret'); + expect(secretMethod).toBeDefined(); + expect(secretMethod?.visibility).toBe('private'); + }); +}); diff --git a/src/extraction/grammars.ts b/src/extraction/grammars.ts index ef6307a92..fd7ad9947 100644 --- a/src/extraction/grammars.ts +++ b/src/extraction/grammars.ts @@ -39,6 +39,7 @@ const WASM_GRAMMAR_FILES: Record = { r: 'tree-sitter-r.wasm', luau: 'tree-sitter-luau.wasm', objc: 'tree-sitter-objc.wasm', + magik: 'tree-sitter-magik.wasm', }; /** @@ -108,6 +109,7 @@ export const EXTENSION_MAP: Record = { '.luau': 'luau', '.m': 'objc', '.mm': 'objc', + '.magik': 'magik', // XML: file-level tracking; the MyBatis extractor matches `` // shape and emits SQL-statement nodes (other XML returns empty). '.xml': 'xml', @@ -216,7 +218,7 @@ export async function loadGrammarsForLanguages(languages: Language[]): Promise> = { typescript: typescriptExtractor, @@ -51,4 +52,5 @@ export const EXTRACTORS: Partial> = { r: rExtractor, luau: luauExtractor, objc: objcExtractor, + magik: magikExtractor, }; diff --git a/src/extraction/languages/magik.ts b/src/extraction/languages/magik.ts new file mode 100644 index 000000000..ffb93e4da --- /dev/null +++ b/src/extraction/languages/magik.ts @@ -0,0 +1,274 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import { getNodeText } from '../tree-sitter-helpers'; +import type { LanguageExtractor } from '../tree-sitter-types'; + +/** + * Magik exemplar-definition functions that create class-like objects. + * These parse as `invoke` nodes with the function name in the `receiver` field + * and the exemplar name as a `:symbol` argument. + */ +const EXEMPLAR_DEFINERS: ReadonlySet = new Set([ + 'define_slotted_exemplar', + 'def_slotted_exemplar', + 'define_mixin', + 'def_mixin', + 'define_pseudo_slot_exemplar', + 'define_indexed_exemplar', +]); + +/** + * Magik receivers that refer to "self" — skip for call resolution since they + * don't aid name-based matching. + */ +const SELF_RECEIVERS: ReadonlySet = new Set([ + '_self', '_super', '_clone', '_thisthread', +]); + +export const magikExtractor: LanguageExtractor = { + // Magik methods are `_method exemplar.name ... _endmethod` — top-level, not + // inside a class body. The exemplarname field provides the receiver type so + // getReceiverType can build the qualified name `exemplar::method_name`. + functionTypes: [], // procedures handled via visitNode + classTypes: [], // exemplars handled via visitNode + methodTypes: [], // methods handled via visitNode (for inline ## docstrings) + interfaceTypes: [], + structTypes: [], + enumTypes: [], + typeAliasTypes: [], + importTypes: [], // _import is block-scope variable sharing, not module imports + callTypes: ['invoke'], // standalone function invocations; `call` handled via visitNode/extractBareCall + variableTypes: [], // _local/_dynamic are function-body locals, not top-level symbols + nameField: 'name', // method: name field = the method name identifier + bodyField: '', // Magik has no explicit body field; resolveBody returns the node itself + paramsField: '', // arguments are unnamed children; getSignature collects them + + // Magik `_package sw` — creates a namespace wrapping all subsequent declarations + packageTypes: ['package'], + extractPackage: (node, source) => { + const text = getNodeText(node, source); + const m = text.match(/_package\s+(\S+)/i); + return m ? m[1]! : null; + }, + + // The `method` node's `exemplarname` field is the class/exemplar name + getReceiverType: (node, source) => { + if (node.type !== 'method') return undefined; + const exemplar = node.childForFieldName('exemplarname'); + return exemplar ? getNodeText(exemplar, source).trim() : undefined; + }, + + // Collect `argument` children for the signature string + getSignature: (node, source) => { + const args: string[] = []; + for (let i = 0; i < node.namedChildCount; i++) { + const child = node.namedChild(i); + if (child?.type === 'argument') args.push(getNodeText(child, source)); + } + return '(' + args.join(', ') + ')'; + }, + + // Check for `_private` keyword among anonymous children + getVisibility: (node) => { + for (let i = 0; i < node.childCount; i++) { + const child = node.child(i); + if (child && !child.isNamed && child.text.toLowerCase() === '_private') { + return 'private'; + } + } + return 'public'; + }, + + // Magik's body IS the method/procedure node — no separate body field. + // Returning the node itself causes visitFunctionBody to walk all children. + resolveBody: (node, _bodyField) => { + if (node.type === 'method' || node.type === 'procedure') return node; + return null; + }, + + // Handle `call` nodes inside function bodies: extract the `message` field + // as the callee name. The framework calls this for any node that is NOT in + // callTypes (so `invoke` nodes go through extractCall, `call` nodes come here). + extractBareCall: (node, source) => { + if (node.type !== 'call') return undefined; + const messageNode = node.childForFieldName('message'); + if (!messageNode) return undefined; + const methodName = getNodeText(messageNode, source).trim(); + if (!methodName) return undefined; + + const receiverNode = node.childForFieldName('receiver'); + if (receiverNode) { + const receiverText = getNodeText(receiverNode, source).trim(); + if (!SELF_RECEIVERS.has(receiverText) && + (receiverNode.type === 'variable' || receiverNode.type === 'identifier')) { + return `${receiverText}.${methodName}`; + } + } + return methodName; + }, + + visitNode: (node, ctx) => { + // ── Methods (_method exemplar.name(args) ... _endmethod) ──────────────── + // Handled here (not via methodTypes) so we can extract inline ## docstrings. + if (node.type === 'method') { + const nameNode = node.childForFieldName('name'); + if (!nameNode) return true; + const name = getNodeText(nameNode, ctx.source).trim(); + if (!name) return true; + + const exemplarNode = node.childForFieldName('exemplarname'); + const exemplarName = exemplarNode ? getNodeText(exemplarNode, ctx.source).trim() : undefined; + + const docNode = node.namedChildren.find((c: SyntaxNode) => c.type === 'documentation'); + const docstring = docNode + ? getNodeText(docNode, ctx.source) + .split('\n') + .map((l: string) => l.replace(/^\s*##\s?/, '')) + .join('\n') + .trim() + : undefined; + + const args: string[] = []; + for (let i = 0; i < node.namedChildCount; i++) { + const child = node.namedChild(i); + if (child?.type === 'argument') args.push(getNodeText(child, ctx.source)); + } + + let visibility: 'public' | 'private' | undefined; + for (let i = 0; i < node.childCount; i++) { + const child = node.child(i); + if (child && !child.isNamed && child.text.toLowerCase() === '_private') { + visibility = 'private'; + break; + } + } + + const extra: Record = { + signature: '(' + args.join(', ') + ')', + docstring, + visibility: visibility ?? 'public', + }; + if (exemplarName) { + extra.qualifiedName = `${exemplarName}::${name}`; + } + + const methodNode = ctx.createNode('method', name, node, extra); + if (methodNode) { + // Create contains edge from the exemplar class node if it exists + if (exemplarName) { + const ownerNode = ctx.nodes.find( + (n) => n.name === exemplarName && n.kind === 'class' && n.filePath === ctx.filePath + ); + if (ownerNode) { + ctx.addUnresolvedReference({ + fromNodeId: ownerNode.id, + referenceName: name, + referenceKind: 'references', + line: node.startPosition.row + 1, + column: node.startPosition.column, + }); + } + } + ctx.pushScope(methodNode.id); + ctx.visitFunctionBody(node, methodNode.id); + ctx.popScope(); + } + return true; + } + + // ── Procedures (_proc @name(args) ... _endproc) ───────────────────────── + if (node.type === 'procedure') { + const labelNode = node.namedChildren.find((c: SyntaxNode) => c.type === 'label'); + const name = labelNode + ? getNodeText(labelNode, ctx.source).replace(/^@\s*/, '').trim() + : ''; + + const docNode = node.namedChildren.find((c: SyntaxNode) => c.type === 'documentation'); + const docstring = docNode + ? getNodeText(docNode, ctx.source) + .split('\n') + .map((l: string) => l.replace(/^\s*##\s?/, '')) + .join('\n') + .trim() + : undefined; + + const args: string[] = []; + for (let i = 0; i < node.namedChildCount; i++) { + const child = node.namedChild(i); + if (child?.type === 'argument') args.push(getNodeText(child, ctx.source)); + } + + const fn = ctx.createNode('function', name, node, { + signature: '(' + args.join(', ') + ')', + docstring, + }); + if (fn) { + ctx.pushScope(fn.id); + ctx.visitFunctionBody(node, fn.id); + ctx.popScope(); + } + return true; + } + + // ── Exemplar definitions (define_slotted_exemplar, define_mixin, …) ───── + if (node.type === 'invoke') { + const receiverNode = node.childForFieldName('receiver'); + if (!receiverNode) return false; + const fnName = getNodeText(receiverNode, ctx.source).trim(); + + if (EXEMPLAR_DEFINERS.has(fnName)) { + // First :symbol argument is the exemplar (class) name + const symbolNode = node.namedChildren.find((c: SyntaxNode) => c.type === 'symbol'); + if (symbolNode) { + const rawName = getNodeText(symbolNode, ctx.source) + .replace(/^:/, '') + .replace(/^\||\|$/g, '') + .trim(); + if (rawName) { + ctx.createNode('class', rawName, node); + } + } + return true; // handled — don't also emit as a generic call + } + return false; // other invoke nodes → default extractCall path + } + + // ── Top-level call nodes (outside method/procedure bodies) ─────────────── + // In method/procedure bodies, `call` is handled via extractBareCall. + // At the fragment level (e.g. class initialisation code), handle here too. + if (node.type === 'call') { + const callerId = ctx.nodeStack[ctx.nodeStack.length - 1]; + if (callerId) { + const messageNode = node.childForFieldName('message'); + if (messageNode) { + const methodName = getNodeText(messageNode, ctx.source).trim(); + if (methodName) { + const receiverNode = node.childForFieldName('receiver'); + let calleeName = methodName; + if (receiverNode) { + const receiverText = getNodeText(receiverNode, ctx.source).trim(); + if (!SELF_RECEIVERS.has(receiverText) && + (receiverNode.type === 'variable' || receiverNode.type === 'identifier')) { + calleeName = `${receiverText}.${methodName}`; + } + } + ctx.addUnresolvedReference({ + fromNodeId: callerId, + referenceName: calleeName, + referenceKind: 'calls', + line: node.startPosition.row + 1, + column: node.startPosition.column, + }); + } + } + } + // Visit children so nested calls inside arguments are captured + for (let i = 0; i < node.namedChildCount; i++) { + const child = node.namedChild(i); + if (child) ctx.visitNode(child); + } + return true; + } + + return false; + }, +}; diff --git a/src/extraction/wasm/tree-sitter-magik.wasm b/src/extraction/wasm/tree-sitter-magik.wasm new file mode 100755 index 0000000000000000000000000000000000000000..21b3000493b330ce46e0f532ebac9c8d9cc04448 GIT binary patch literal 517950 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 *}6!?D!jc4{%sZ6R#(^DX&IOZ933 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 t