API Reference gt_bridge v#0.19.2

Copy Markdown View Source

Modules

I supervise children that evaluate arbitrary Elixir code (Similar to IEx).

I am examples for GtBridge.Analysis, the static analysis module.

I am examples for GtBridge.CodeMonitor, the sole publisher of %ModuleEvent{kind: :recompiled} on the bridge's EventBroker bus.

I am examples for the Elixir autocompletion system.

I am examples for GtBridge.Documentation, the module doc extractor.

I am examples for GtBridge.Eval, the evaluation GenServer.

I test the hot-reload system end-to-end against a real dependency.

I am examples for GtBridge.Analysis.Interfaces, the behaviour and protocol listing.

I am examples for the Mondrian graph view shim.

I am examples for the GtBridge serializer.

I am examples for the framed TCP transport.

I am examples for the Phlow view system. I also define a sample struct with two views to exercise view registration and rendering.

I am the OTP application entry point: I start the supervision tree, register Phlow views, and start the TCP listener GT connects to.

I provide static analysis data for GT visualization.

I resolve call sites for GT's inline |> expander: which calls in a source buffer point at real functions or types, resolved through the context module's aliases, imports, and its own defs. Name-set and alias/import lookups are md5-cached per module.

I answer the xref-backed graph questions: module dependency edges, callers and callees, implementors of a named function (with default-arg arities resolved to their defining clause), and call references across loaded applications.

I list the behaviours and protocols an application defines, each with the modules implementing it.

I maintain the set of every loaded module, keyed by its name as inspect/1 renders it ("GtBridge.Eval", ":erlang") and carrying its module atom and owning application. I am populated initially from :application.get_key/2 for every loaded application plus whatever the VM has already loaded, and maintained additively by EventBroker %ModuleEvent{} events.

I am the pure source-text half of Analysis: function/type entry extraction (strict and lenient), module scoping for multi-module files, and the canonical source-edit splices (swap/replace/append). I never touch the code server; beam-side merging stays in GtBridge.Analysis.

I walk Elixir AST and extract call sites.

I read beam-file chunks directly.

I own the named ETS table that backs all GtBridge derived-state caches and invalidate per-module entries when the module recompiles.

I am the sole publisher of %ModuleEvent{kind: :recompiled} events.

I provide code completion for Elixir source fragments.

I expose application-level dependency graph queries to GT.

I provide structured access to Elixir module and function documentation.

I am a per-session evaluation GenServer.

I capture a Macro.Env with built-in helpers available.

I reprsent an error in evaluation

I prime an evaluation session with a module's preamble (alias / import / require declarations) so completion + eval work in the module's namespace context.

I map session IDs to GtBridge.Eval processes.

I define the EventBroker filters and the broadcast helper for GtBridge's module-event bus.

I am the GtBridge.Events.AnyModuleEvent filter generated by deffilter in GtBridge.Events.

I am the body of an EventBroker event announcing a change to a BEAM module.

Helper module for getting view declarations for Elixir objects.

I drive the hot-reload pipeline: write source to disk, compile, persist beam files, broadcast events, and return a payload that GT-side subscribers can re-render from directly.

I am the shared mix-project introspection helpers used across hot_reload, module_creator, and code_monitor.

I expose Mnesia table introspection to GT.

I create a fresh Elixir source file for a module name and recompile.

I am a Registry for objects that are referenced from GT.

Builder for creating Phlow views.

A column definition for columned list and tree views.

A Phlow columned list view specification.

A Phlow columned tree view specification.

An empty Phlow view specification.

A Phlow list view specification.

I am a Phlow Mondrian (graph) view specification.

A Phlow text editor view specification.

I expose process-supervision introspection to GT.

Helper macros for declaring Phlow views on typed structs.

I hold views for various types, please query me to find out views you are interested in.

I display a map as a tree graph where each key points to its value, and nested maps expand recursively.

I am a long-lived wrapper around OTP's :xref cross-reference server.

I serve one GT connection over a length-framed socket.

I turn one decoded request frame into the reply frame for it.

I am a TCP listener. I listen on a given interface and port for incoming connections.

I supervise the framed-transport Tcp.Listener and its Tcp.Connection children. I start empty; start_listener/1 brings a listener up.