Documentation
¶
Overview ¶
editordiscovery.go implements D-14/D-15's startup-time editor discovery: the third rung of resolveEditorLink's precedence chain (internal/cli/editorurl.go), consulted only when neither --editor-url nor CODEGRAPH_EDITOR_URL configured a template.
Discovery is a PROBE, never a launch (SRV-03): it only asks the operating system "is this on PATH?" or "does this application directory exist?" via exec.LookPath and os.Stat — it never spawns a process. discoverEditorWith runs the probe order once, at codegraph ui's startup, before the server binds a port; it is never re-run per request. Finding nothing is a normal outcome, not a failure: the server still starts and GetEditorLink answers NO_TEMPLATE, exactly as it does when no source configured a template at all (D-15).
The probe order (editorLaunchers below) is a committed fact: VS Code, then Cursor, then the JetBrains family in a fixed order. Changing it is a deliberate, tested decision, not an incidental refactor.
Native Windows app-directory probing is deliberately absent: native Windows support was dropped at v0.4.0 (WSL2 only, per quick task 260807-gho) — there is no host left for such a probe to run on. Any platform other than macOS or Linux falls back to PATH probing only.
editorurl.go resolves codegraph ui's editor-link configuration ONCE at startup (D-14/D-15/D-16), before uiserver.Listen ever binds a port. This is the CLI's operator boundary counterpart to internal/uiserver/editorlink.go's per-request handler: both call the SAME uiserver.ValidateEditorTemplate — this package declares no second validator.
Package cli implements the codegraph command-line interface: the Cobra root command "codegraph" and its init/index/uninit subcommands, wired directly to the internal/indexer pipeline (D-01). Commands contain no extraction/resolution logic of their own — they resolve paths, manage the .codegraph/ directory layout (D-01b), and delegate all indexing work to indexer.Run. sync/daemon/unlock (D-01/D-05) extend the surface with incremental update, the shared watch/index server, and stale-lock clearing, delegating to indexer.Sync and internal/daemon respectively. githooks (phase 05) manages marker-fenced git sync hooks, and man (Phase 3 D-01/D-02) is the hidden man-page generator the Homebrew cask's post-install hook invokes — both are documented Go-only surface extensions. ui (Phase 1 SRV-01) runs a local, read-only Connect RPC server (internal/uiserver) over the repository's own index, foreground until Ctrl-C like serve/daemon start, sharing neither's lifecycle.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrAlreadyInitialized = errors.New("cli: already initialized")
ErrAlreadyInitialized is returned by `init` when .codegraph/ already exists at the target root (D-01a) — init never clobbers an existing store; the caller must run `codegraph index --force` to rebuild.
var ErrNotInitialized = errors.New("cli: not initialized")
ErrNotInitialized is returned by `index` when no .codegraph/ exists yet at the target root (D-01a) — the caller must run `codegraph init` first.
Functions ¶
func Execute ¶
func Execute() error
Execute runs the codegraph root command against os.Args, returning any error for the caller (cmd/codegraph/main.go) to report and exit non-zero on.
func NewRootCmd ¶ added in v0.13.0
NewRootCmd returns a freshly built root command tree, identical to what Execute() runs. It exists so tools/clidoc (DOCS-05's out-of-package CLI reference generator) can obtain the same command tree without this package importing cobra/doc or anything new; it changes no behavior of the shipped binary. newRootCmd itself is not renamed — every existing intra-package and cmd/codegraph call site keeps working untouched.
Types ¶
This section is empty.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package present is the sole home for charm.land/lipgloss/v2 styling (D-01).
|
Package present is the sole home for charm.land/lipgloss/v2 styling (D-01). |
|
Package tui hosts the ONLY code in this module that imports charm.land/bubbletea/v2 and charm.land/bubbles/v2 (D-09/D-11).
|
Package tui hosts the ONLY code in this module that imports charm.land/bubbletea/v2 and charm.land/bubbles/v2 (D-09/D-11). |