{
  "slug": "code-outline-extractor",
  "name": "gizza-ai/code-outline-extractor",
  "version": "0.1.0",
  "title": "Code Outline Extractor — Function, Class & Method Tree — gizza.ai",
  "description": "Paste source code and get a nested outline of its functions, classes, and methods as an indented tree, Markdown table of contents, or JSON. Runs fully in your browser.",
  "tags": [
    "code outline",
    "symbol tree",
    "function list",
    "class methods",
    "code table of contents",
    "source structure",
    "code map"
  ],
  "category": "text",
  "urls": {
    "page": "https://gizza.ai/tools/code-outline-extractor/",
    "markdown": "https://gizza.ai/tools/code-outline-extractor/index.md",
    "descriptor": "https://gizza.ai/tools/code-outline-extractor/tool.json",
    "deep_link_example": "https://gizza.ai/tools/code-outline-extractor/?code=class%20Greeter%3A%0A%20%20%20%20def%20hi%28self%29%3A%0A%20%20%20%20%20%20%20%20return%201%0A%0Adef%20main%28%29%3A%0A%20%20%20%20pass&language=auto&format=tree&signatures=true&line_numbers=true"
  },
  "cli": "gizza tool code-outline-extractor \"class Greeter:\n    def hi(self):\n        return 1\n\ndef main():\n    pass\"",
  "tool": {
    "description": "Produce a structured, nested outline of the functions, classes, and methods in pasted source code — a symbol tree / table of contents. Supports Python, JavaScript, TypeScript, Rust, Go, Java, C, C++, C#, PHP, and Swift; language='auto' (default) guesses from the code. Methods nest under their class. format='tree' (default) is an indented text outline, 'markdown' a nested bullet list, 'json' a nested array of {kind, name, line, signature, children}. Set signatures=true to show each entry's full header line instead of just its name; line_numbers defaults to true. Uses a dependency-free brace-depth / indentation heuristic (no full language parser), so unusual multi-line signatures may be missed.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "description": "The source code to outline. Paste one file or a snippet.",
          "type": "string"
        },
        "format": {
          "default": "tree",
          "description": "Output shape. 'tree' (default) is an indented text outline; 'markdown' is a nested bullet list (a table of contents); 'json' is a nested array of {kind, name, line, signature, children}.",
          "enum": [
            "tree",
            "markdown",
            "json"
          ],
          "type": "string"
        },
        "language": {
          "default": "auto",
          "description": "Source language. 'auto' (default) guesses from the code (Python by indentation, everything else by braces). Set it explicitly if auto-detect picks wrong.",
          "enum": [
            "auto",
            "python",
            "javascript",
            "typescript",
            "rust",
            "go",
            "java",
            "c",
            "cpp",
            "csharp",
            "php",
            "swift"
          ],
          "type": "string"
        },
        "line_numbers": {
          "default": true,
          "description": "When true (default), annotate each entry with its 1-based source line. Ignored by the json format, which always includes the line field.",
          "type": "boolean"
        },
        "signatures": {
          "default": false,
          "description": "When true, show each entry's full header line (e.g. 'def add(a, b)') instead of just its name. Ignored by the json format, which always includes the signature field. Default false.",
          "type": "boolean"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    }
  }
}