← Back
Home › Systems › CI/CD and developer tooling

code-editor

code editor / IDE: rope buffer, tree-sitter, LSP/DAP clients, extension host, indexing, remote dev, GPU text rendering

VS Code, JetBrains IDEs, Xcode, Zed, Cursor

SystemTechniques · 16Primitives · 40 code-editor Repository context retrievalagentic-ai · medium: Select relevant files, symbols and snippets from a repository to fit an LLM prompt budgetCode symbol indexingcompilers · medium: Extract definitions and references per file, give each symbol a stable string id, and store symbol to occurrences, re-indexing only files whose content hash changed.›Incremental parsingcompilers · medium: Reparse only the region an edit damaged and splice the new subtrees into the old tree, sharing everything else; O(edit) instead of O(file).›Language server protocolcompilers · medium: One JSON-RPC conversation over a pipe lets any editor drive any language's analysis server; the cost is keeping a live, edited document in sync and answering before it changes.›Lossless syntax treescompilers · medium: Concrete syntax trees with trivia, green/red node split (Roslyn, rowan) for tools that rewrite codeOperational transformationdistributed · medium: Transform concurrent edits against each other for collaborative text editingThree-way mergedistributed · medium: Merge two descendants against their common ancestor: take whichever side changed, report a conflict only where both changed the same spot differently.›Ropegraphics · low: A balanced tree of small string chunks with cached byte and newline counts, so seek, insert, delete and snapshot cost O(log n) instead of O(n).›Breakpoints watchpointscompilers · low: Software breakpoints (int3 patching), hardware debug registers and single-steppingDamage trackinggraphics · low: Track dirty rectangles so each frame repaints and recomposites only what changedFont rasterizationgraphics · low: TrueType/CFF outline parsing and anti-aliased glyph rasterization with hinting/cachingGap buffergraphics · low: Array with a movable gap for O(1) edits at the cursor; text editors and slot tablesList virtualization (windowing)graphics · low: Create and lay out only the items inside the viewport plus a little overscan, and fake the full scroll extent, so frame cost depends on the screen, not on N.›Syntax highlightinggraphics · low: TextMate grammars or parser-based highlighting into token spansUndo redographics · low: Command or snapshot history with grouping and coalescingFile system watchinghardware-os · low: Treat OS change notices as hints, debounce them, and rescan and diff a snapshot whenever notices overflow or may be lost.›Fill in the middleml-training · low: FIM training and prompting: prefix/suffix/middle reordering with sentinel tokens for code infillFuzzy finder scoringsearch-sort · low: Subsequence matching with gap/position scoring (fzf-style)Glob matchingsearch-sort · low: Glob/gitignore pattern matching without backtracking blowupName resolutioncompilers · low: Bind every use of a name to its declaration with a scope stack, handling shadowing, hoisting and closure capture in one AST walk.›Protobuf wire formatnetworking · low: Protocol Buffers wire format: tags, varints, length-delimited fields and schema evolutionRecursive-descent parsingcompilers · low: Hand-written top-down parser with one function per grammar rule; simple, fast, with full control over error messages and recovery.›Text position encodingcompilers · low: Store byte offsets, convert to (line, column) on demand with a line-start table and binary search, and count columns in the unit the peer negotiated.›+ 9 more techniques+ 24 more primitives

Similar systems

Share the most building blocks with this one.