analyze_current_file
analyze_current_fileAnalyze SAPUI5 file structure to identify imports, classes, and controller methods for development insights.
Instructions
Analyze the current file for imports, class structure, and controller methods.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| imports | Yes | ||
| classNames | Yes | ||
| controllerMethods | Yes | ||
| controllerPattern | Yes |
Implementation Reference
- The main handler function that executes the analyze_current_file tool logic. It parses input arguments, reads the file using readTextFile, analyzes the file structure using analyzeFileStructure, detects the controller pattern, and returns validated output.
async handler(args, { context }) { const { path } = inputSchema.parse(args); const code = await readTextFile(path, context.rootDir); // AST-backed parser utilities expose metadata for IDE automation and audits. const analysis = analyzeFileStructure(code); return outputSchema.parse({ path, imports: analysis.imports, classNames: analysis.classNames, controllerPattern: detectControllerPattern(code), controllerMethods: analysis.controllerMethods }); } - Input and output schema definitions using Zod. The input schema validates a 'path' string parameter, while the output schema defines the structure for analysis results including imports, class names, controller pattern, and controller methods.
const inputSchema = z.object({ path: z.string().min(1) }).strict(); const outputSchema = z.object({ path: z.string(), imports: z.object({ esmImports: z.array(z.string()), sapUiDefineDependencies: z.array(z.string()) }), classNames: z.array(z.string()), controllerPattern: z.string(), controllerMethods: z.array(z.string()) }); - src/tools/index.js:4-4 (registration)Import statement for the analyzeCurrentFileTool from the project-specific module.
import { analyzeCurrentFileTool } from "./project/analyzeCurrentFile.js"; - src/tools/index.js:66-66 (registration)Registration of the analyzeCurrentFileTool in the allTools array, making it available as an MCP tool.
analyzeCurrentFileTool, - src/utils/fileSystem.js:35-43 (helper)Helper function readTextFile that resolves a workspace path, validates it exists as a file, and reads its contents as UTF-8 text. Used by the handler to read the file to be analyzed.
export async function readTextFile(inputPath, root = workspaceRoot()) { const resolved = resolveWorkspacePath(inputPath, root); await assertPathExists(resolved); const stats = await fs.stat(resolved); if (!stats.isFile()) { throw new ToolError(`Path is not a file: ${inputPath}`, { code: "NOT_A_FILE" }); } return fs.readFile(resolved, "utf8"); }