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 GtBridge.ModuleCreator.
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.