[{"data":1,"prerenderedAt":855},["ShallowReactive",2],{"navigation_docs":3,"-tools-find-implementors":340,"-tools-find-implementors-surround":850},[4,30,55,254,271,294,311],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"Introduction","/getting-started/introduction","1.getting-started/1.introduction",{"title":14,"path":15,"stem":16},"Platform","/getting-started/platforms","1.getting-started/2.platforms",{"title":18,"path":19,"stem":20},"Installation","/getting-started/installation","1.getting-started/3.installation",{"title":22,"path":23,"stem":24},"Licensing","/getting-started/licensing","1.getting-started/4.licensing",{"title":26,"path":27,"stem":28},"Quick Start","/getting-started/quick-start","1.getting-started/5.quick-start",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Features","/features","2.features",[35,39,43,47,51],{"title":36,"path":37,"stem":38},"Features Overview","/features/overview","2.features/1.overview",{"title":40,"path":41,"stem":42},"Code Quality Metrics","/features/code-quality-metrics","2.features/2.code-quality-metrics",{"title":44,"path":45,"stem":46},"Technical Debt Analysis","/features/technical-debt-analysis","2.features/3.technical-debt-analysis",{"title":48,"path":49,"stem":50},"Code Search","/features/code-search","2.features/4.code-search",{"title":52,"path":53,"stem":54},"Reports","/features/reports","2.features/5.reports",{"title":56,"path":57,"stem":58,"children":59,"page":29},"Tools","/tools","3.tools",[60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,142,148,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250],{"title":61,"path":62,"stem":63},"Tools Overview","/tools/overview","3.tools/1.overview",{"title":65,"path":66,"stem":67},"stellarion_get_symbol_info","/tools/get-symbol-info","3.tools/10.get-symbol-info",{"title":69,"path":70,"stem":71},"stellarion_symbol_search","/tools/symbol-search","3.tools/11.symbol-search",{"title":73,"path":74,"stem":75},"stellarion_get_callers","/tools/get-callers","3.tools/12.get-callers",{"title":77,"path":78,"stem":79},"stellarion_get_callees","/tools/get-callees","3.tools/13.get-callees",{"title":81,"path":82,"stem":83},"stellarion_get_detailed_symbol","/tools/get-detailed-symbol","3.tools/14.get-detailed-symbol",{"title":85,"path":86,"stem":87},"stellarion_find_by_imports","/tools/find-by-imports","3.tools/15.find-by-imports",{"title":89,"path":90,"stem":91},"stellarion_find_by_signature","/tools/find-by-signature","3.tools/16.find-by-signature",{"title":93,"path":94,"stem":95},"stellarion_find_entry_points","/tools/find-entry-points","3.tools/17.find-entry-points",{"title":97,"path":98,"stem":99},"stellarion_find_implementors","/tools/find-implementors","3.tools/18.find-implementors",{"title":101,"path":102,"stem":103},"stellarion_traverse_graph","/tools/traverse-graph","3.tools/19.traverse-graph",{"title":105,"path":106,"stem":107},"stellarion_get_ai_context","/tools/get-ai-context","3.tools/2.get-ai-context",{"title":109,"path":110,"stem":111},"stellarion_memory_store","/tools/memory-store","3.tools/20.memory-store",{"title":113,"path":114,"stem":115},"stellarion_memory_search","/tools/memory-search","3.tools/21.memory-search",{"title":117,"path":118,"stem":119},"stellarion_memory_get","/tools/memory-get","3.tools/22.memory-get",{"title":121,"path":122,"stem":123},"stellarion_memory_context","/tools/memory-context","3.tools/23.memory-context",{"title":125,"path":126,"stem":127},"stellarion_memory_invalidate","/tools/memory-invalidate","3.tools/24.memory-invalidate",{"title":129,"path":130,"stem":131},"stellarion_memory_list","/tools/memory-list","3.tools/25.memory-list",{"title":133,"path":134,"stem":135},"stellarion_memory_stats","/tools/memory-stats","3.tools/26.memory-stats",{"title":137,"path":138,"stem":139,"children":140},"stellarion_reindex_workspace","/tools/reindex-workspace","3.tools/27.reindex-workspace",[141],{"title":137,"path":138,"stem":139},{"title":143,"path":144,"stem":145,"children":146},"stellarion_index_files","/tools/index-files","3.tools/28.index-files",[147],{"title":143,"path":144,"stem":145},{"title":149,"path":150,"stem":151,"children":152},"stellarion_index_directory","/tools/index-directory","3.tools/29.index-directory",[153],{"title":149,"path":150,"stem":151},{"title":155,"path":156,"stem":157},"stellarion_get_edit_context","/tools/get-edit-context","3.tools/3.get-edit-context",{"title":159,"path":160,"stem":161},"stellarion_scan_security [Pro]","/tools/scan-security","3.tools/30.scan-security",{"title":163,"path":164,"stem":165},"stellarion_analyze_coupling [Pro]","/tools/analyze-coupling","3.tools/31.analyze-coupling",{"title":167,"path":168,"stem":169},"stellarion_find_unused_code [Pro]","/tools/find-unused-code","3.tools/32.find-unused-code",{"title":171,"path":172,"stem":173},"stellarion_codebase_health [Pro]","/tools/codebase-health","3.tools/33.codebase-health",{"title":175,"path":176,"stem":177},"stellarion_tech_debt_report [Pro]","/tools/tech-debt-report","3.tools/34.tech-debt-report",{"title":179,"path":180,"stem":181},"stellarion_assess_change_risk [Pro]","/tools/assess-change-risk","3.tools/35.assess-change-risk",{"title":183,"path":184,"stem":185},"stellarion_dependency_drift [Pro]","/tools/dependency-drift","3.tools/36.dependency-drift",{"title":187,"path":188,"stem":189},"stellarion_api_surface [Pro]","/tools/api-surface","3.tools/37.api-surface",{"title":191,"path":192,"stem":193},"stellarion_find_duplicates [Pro]","/tools/find-duplicates","3.tools/38.find-duplicates",{"title":195,"path":196,"stem":197},"stellarion_find_similar [Pro]","/tools/find-similar","3.tools/39.find-similar",{"title":199,"path":200,"stem":201},"stellarion_get_curated_context","/tools/get-curated-context","3.tools/4.get-curated-context",{"title":203,"path":204,"stem":205},"stellarion_cluster_symbols [Pro]","/tools/cluster-symbols","3.tools/40.cluster-symbols",{"title":207,"path":208,"stem":209},"stellarion_compare_symbols [Pro]","/tools/compare-symbols","3.tools/41.compare-symbols",{"title":211,"path":212,"stem":213},"stellarion_mine_git_history [Pro]","/tools/mine-git-history","3.tools/42.mine-git-history",{"title":215,"path":216,"stem":217},"stellarion_mine_git_history_for_file [Pro]","/tools/mine-git-history-for-file","3.tools/43.mine-git-history-for-file",{"title":219,"path":220,"stem":221},"stellarion_search_git_history [Pro]","/tools/search-git-history","3.tools/44.search-git-history",{"title":223,"path":224,"stem":225},"stellarion_find_eda_calls [Pro · EDA]","/tools/find-eda-calls","3.tools/45.find-eda-calls",{"title":227,"path":228,"stem":229},"stellarion_get_flow_graph [Pro · EDA]","/tools/get-flow-graph","3.tools/46.get-flow-graph",{"title":231,"path":232,"stem":233},"stellarion_find_duplicate_constraints [Pro · EDA]","/tools/find-duplicate-constraints","3.tools/47.find-duplicate-constraints",{"title":235,"path":236,"stem":237},"stellarion_analyze_impact","/tools/analyze-impact","3.tools/5.analyze-impact",{"title":239,"path":240,"stem":241},"stellarion_analyze_complexity","/tools/analyze-complexity","3.tools/6.analyze-complexity",{"title":243,"path":244,"stem":245},"stellarion_get_call_graph","/tools/get-call-graph","3.tools/7.get-call-graph",{"title":247,"path":248,"stem":249},"stellarion_get_dependency_graph","/tools/get-dependency-graph","3.tools/8.get-dependency-graph",{"title":251,"path":252,"stem":253},"stellarion_find_related_tests","/tools/find-related-tests","3.tools/9.find-related-tests",{"title":255,"path":256,"stem":257,"children":258,"page":29},"Integrations","/integrations","4.integrations",[259,263,267],{"title":260,"path":261,"stem":262},"Claude Code","/integrations/claude-code","4.integrations/1.claude-code",{"title":264,"path":265,"stem":266},"Cursor","/integrations/cursor","4.integrations/2.cursor",{"title":268,"path":269,"stem":270},"Other MCP Clients","/integrations/other-mcp-clients","4.integrations/3.other-mcp-clients",{"title":272,"path":273,"stem":274,"children":275,"page":29},"Guides","/guides","5.guides",[276,282,286,290],{"title":277,"path":278,"stem":279,"children":280},"Indexing Your Project","/guides/indexing-your-project","5.guides/1.indexing-your-project",[281],{"title":277,"path":278,"stem":279},{"title":283,"path":284,"stem":285},"Improving Code Quality","/guides/improving-code-quality","5.guides/2.improving-code-quality",{"title":287,"path":288,"stem":289},"Reducing Technical Debt","/guides/reducing-technical-debt","5.guides/3.reducing-technical-debt",{"title":291,"path":292,"stem":293},"Slash Commands","/guides/slash-commands","5.guides/4.slash-commands",{"title":295,"path":296,"stem":297,"children":298,"page":29},"Reference","/reference","6.reference",[299,303,307],{"title":300,"path":301,"stem":302},"CLI Commands","/reference/cli-commands","6.reference/1.cli-commands",{"title":304,"path":305,"stem":306},"Environment Variables","/reference/environment-variables","6.reference/2.environment-variables",{"title":308,"path":309,"stem":310},"Troubleshooting","/reference/troubleshooting","6.reference/3.troubleshooting",{"title":312,"path":313,"stem":314,"children":315,"page":29},"Quality","/quality","7.quality",[316,320,324,328,332,336],{"title":317,"path":318,"stem":319},"Code Quality Metrics Overview","/quality/stellarion_quality_metrics","7.quality/1.Stellarion_Quality_Metrics",{"title":321,"path":322,"stem":323},"Cognitive Complexity","/quality/cognitive-complexity","7.quality/2.cognitive-complexity",{"title":325,"path":326,"stem":327},"Cyclomatic Complexity","/quality/cyclomatic-complexity","7.quality/3.cyclomatic-complexity",{"title":329,"path":330,"stem":331},"Maintainability Index","/quality/maintainability","7.quality/4.maintainability",{"title":333,"path":334,"stem":335},"Circular Dependencies","/quality/circular-dependencies","7.quality/5.circular-dependencies",{"title":337,"path":338,"stem":339},"Unused Code Detection","/quality/unused-code","7.quality/6.unused-code",{"id":341,"title":97,"body":342,"description":843,"extension":844,"links":845,"meta":846,"navigation":847,"path":98,"seo":848,"stem":99,"__hash__":849},"docs/3.tools/18.find-implementors.md",{"type":343,"value":344,"toc":832},"minimark",[345,349,354,370,374,473,477,482,488,494,499,591,595,599,612,616,698,702,706,711,715,759,763,766,801,805,828],[346,347,348],"p",{},"Searches for functions that are assigned to struct fields, typically used in vtable-style dispatch, ops patterns, or callback registration. This covers patterns like C-style function pointer tables, Rust trait object vtables, and plugin/strategy registrations where functions are stored in struct fields.",[350,351,353],"h2",{"id":352},"when-to-use","When to Use",[355,356,357,361,364,367],"ul",{},[358,359,360],"li",{},"You want to find all implementations registered for an ops struct or strategy pattern",[358,362,363],{},"You are looking for callback functions assigned to a specific struct field",[358,365,366],{},"You need to understand dynamic dispatch through function pointer tables",[358,368,369],{},"You are auditing which functions are plugged into a plugin architecture",[350,371,373],{"id":372},"parameters","Parameters",[375,376,377,399],"table",{},[378,379,380],"thead",{},[381,382,383,387,390,393,396],"tr",{},[384,385,386],"th",{},"Parameter",[384,388,389],{},"Type",[384,391,392],{},"Required",[384,394,395],{},"Default",[384,397,398],{},"Description",[400,401,402,431,453],"tbody",{},[381,403,404,411,414,417,420],{},[405,406,407],"td",{},[408,409,410],"code",{},"structType",[405,412,413],{},"string",[405,415,416],{},"no",[405,418,419],{},"—",[405,421,422,423,426,427,430],{},"Name of the struct type to search (e.g., ",[408,424,425],{},"FileOps",", ",[408,428,429],{},"HandlerTable",")",[381,432,433,438,440,442,444],{},[405,434,435],{},[408,436,437],{},"field",[405,439,413],{},[405,441,416],{},[405,443,419],{},[405,445,446,447,426,450,430],{},"Specific field name to look for (e.g., ",[408,448,449],{},"read",[408,451,452],{},"on_connect",[381,454,455,460,463,465,470],{},[405,456,457],{},[408,458,459],{},"limit",[405,461,462],{},"number",[405,464,416],{},[405,466,467],{},[408,468,469],{},"50",[405,471,472],{},"Maximum number of results",[350,474,476],{"id":475},"examples","Examples",[478,479,481],"h3",{"id":480},"find-all-implementations-of-a-handler-struct","Find all implementations of a handler struct",[346,483,484],{},[485,486,487],"strong",{},"Natural language:",[489,490,491],"blockquote",{},[346,492,493],{},"What functions are registered as FileOps callbacks?",[346,495,496],{},[485,497,498],{},"MCP call:",[500,501,506],"pre",{"className":502,"code":503,"language":504,"meta":505,"style":505},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"tool\": \"stellarion_find_implementors\",\n  \"arguments\": {\n    \"structType\": \"FileOps\"\n  }\n}\n","json","",[408,507,508,517,544,559,579,585],{"__ignoreMap":505},[509,510,513],"span",{"class":511,"line":512},"line",1,[509,514,516],{"class":515},"sMK4o","{\n",[509,518,520,523,527,530,533,536,539,541],{"class":511,"line":519},2,[509,521,522],{"class":515},"  \"",[509,524,526],{"class":525},"spNyl","tool",[509,528,529],{"class":515},"\"",[509,531,532],{"class":515},":",[509,534,535],{"class":515}," \"",[509,537,97],{"class":538},"sfazB",[509,540,529],{"class":515},[509,542,543],{"class":515},",\n",[509,545,547,549,552,554,556],{"class":511,"line":546},3,[509,548,522],{"class":515},[509,550,551],{"class":525},"arguments",[509,553,529],{"class":515},[509,555,532],{"class":515},[509,557,558],{"class":515}," {\n",[509,560,562,565,568,570,572,574,576],{"class":511,"line":561},4,[509,563,564],{"class":515},"    \"",[509,566,410],{"class":567},"sBMFI",[509,569,529],{"class":515},[509,571,532],{"class":515},[509,573,535],{"class":515},[509,575,425],{"class":538},[509,577,578],{"class":515},"\"\n",[509,580,582],{"class":511,"line":581},5,[509,583,584],{"class":515},"  }\n",[509,586,588],{"class":511,"line":587},6,[509,589,590],{"class":515},"}\n",[478,592,594],{"id":593},"find-implementations-for-a-specific-field","Find implementations for a specific field",[346,596,597],{},[485,598,487],{},[489,600,601],{},[346,602,603,604,607,608,611],{},"Which functions are assigned to the ",[408,605,606],{},"on_message"," field of ",[408,609,610],{},"WebSocketHandler","?",[346,613,614],{},[485,615,498],{},[500,617,619],{"className":502,"code":618,"language":504,"meta":505,"style":505},"{\n  \"tool\": \"stellarion_find_implementors\",\n  \"arguments\": {\n    \"structType\": \"WebSocketHandler\",\n    \"field\": \"on_message\"\n  }\n}\n",[408,620,621,625,643,655,673,689,693],{"__ignoreMap":505},[509,622,623],{"class":511,"line":512},[509,624,516],{"class":515},[509,626,627,629,631,633,635,637,639,641],{"class":511,"line":519},[509,628,522],{"class":515},[509,630,526],{"class":525},[509,632,529],{"class":515},[509,634,532],{"class":515},[509,636,535],{"class":515},[509,638,97],{"class":538},[509,640,529],{"class":515},[509,642,543],{"class":515},[509,644,645,647,649,651,653],{"class":511,"line":546},[509,646,522],{"class":515},[509,648,551],{"class":525},[509,650,529],{"class":515},[509,652,532],{"class":515},[509,654,558],{"class":515},[509,656,657,659,661,663,665,667,669,671],{"class":511,"line":561},[509,658,564],{"class":515},[509,660,410],{"class":567},[509,662,529],{"class":515},[509,664,532],{"class":515},[509,666,535],{"class":515},[509,668,610],{"class":538},[509,670,529],{"class":515},[509,672,543],{"class":515},[509,674,675,677,679,681,683,685,687],{"class":511,"line":581},[509,676,564],{"class":515},[509,678,437],{"class":567},[509,680,529],{"class":515},[509,682,532],{"class":515},[509,684,535],{"class":515},[509,686,606],{"class":538},[509,688,578],{"class":515},[509,690,691],{"class":511,"line":587},[509,692,584],{"class":515},[509,694,696],{"class":511,"line":695},7,[509,697,590],{"class":515},[478,699,701],{"id":700},"browse-all-vtable-registrations","Browse all vtable registrations",[346,703,704],{},[485,705,487],{},[489,707,708],{},[346,709,710],{},"Find all function pointer registrations in the project",[346,712,713],{},[485,714,498],{},[500,716,718],{"className":502,"code":717,"language":504,"meta":505,"style":505},"{\n  \"tool\": \"stellarion_find_implementors\",\n  \"arguments\": {}\n}\n",[408,719,720,724,742,755],{"__ignoreMap":505},[509,721,722],{"class":511,"line":512},[509,723,516],{"class":515},[509,725,726,728,730,732,734,736,738,740],{"class":511,"line":519},[509,727,522],{"class":515},[509,729,526],{"class":525},[509,731,529],{"class":515},[509,733,532],{"class":515},[509,735,535],{"class":515},[509,737,97],{"class":538},[509,739,529],{"class":515},[509,741,543],{"class":515},[509,743,744,746,748,750,752],{"class":511,"line":546},[509,745,522],{"class":515},[509,747,551],{"class":525},[509,749,529],{"class":515},[509,751,532],{"class":515},[509,753,754],{"class":515}," {}\n",[509,756,757],{"class":511,"line":561},[509,758,590],{"class":515},[350,760,762],{"id":761},"output-format","Output Format",[346,764,765],{},"Returns matching implementations:",[355,767,768,774,780,785,790,795],{},[358,769,770,773],{},[485,771,772],{},"function"," — Name of the function being registered",[358,775,776,779],{},[485,777,778],{},"uri"," — File path where the registration occurs",[358,781,782,784],{},[485,783,511],{}," — Line number of the registration",[358,786,787,789],{},[485,788,410],{}," — The struct type the function is registered on",[358,791,792,794],{},[485,793,437],{}," — The specific field being assigned",[358,796,797,800],{},[485,798,799],{},"snippet"," — Code snippet showing the registration",[350,802,804],{"id":803},"tips","Tips",[355,806,807,810,816,822],{},[358,808,809],{},"This is especially useful in C, Rust, and Go codebases that use struct-based dispatch instead of interfaces or virtual methods.",[358,811,812,813,815],{},"If you don't know the struct name, omit ",[408,814,410],{}," to search broadly.",[358,817,818,819,821],{},"Combine with ",[408,820,81],{}," to inspect the implementation of a discovered callback function.",[358,823,824,825,827],{},"For interface/trait implementations in the traditional OOP sense, use ",[408,826,69],{}," with the interface name instead.",[829,830,831],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":505,"searchDepth":519,"depth":519,"links":833},[834,835,836,841,842],{"id":352,"depth":519,"text":353},{"id":372,"depth":519,"text":373},{"id":475,"depth":519,"text":476,"children":837},[838,839,840],{"id":480,"depth":546,"text":481},{"id":593,"depth":546,"text":594},{"id":700,"depth":546,"text":701},{"id":761,"depth":519,"text":762},{"id":803,"depth":519,"text":804},"Find functions registered as struct field callbacks or vtable dispatch implementations","md",null,{},true,{"title":97,"description":843},"9ooCffXTmvWCF4UkXjiDkBo2nWKraW-Rq6CDwu7iujc",[851,853],{"title":93,"path":94,"stem":95,"description":852,"children":-1},"Discover main functions, HTTP handlers, CLI commands, and event handlers in the codebase",{"title":101,"path":102,"stem":103,"description":854,"children":-1},"Custom graph traversal with edge type, node type, direction, and depth filters",1777612936711]