source_file
block_comment
/* "/*"
*/ "*/"
block_comment
/* "/*"
outer_doc_comment_marker "*"
doc_comment "\n* A helper binary for building the ground-truth AST mapping"...
*/ "*/"
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "std"
:: "::"
identifier "io"
:: "::"
use_list
{ "{"
self "self"
, ","
identifier "Stdout"
, ","
identifier "Write"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "time"
:: "::"
identifier "Duration"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "anyhow"
:: "::"
use_list
{ "{"
identifier "Context"
, ","
identifier "Result"
, ","
identifier "anyhow"
, ","
identifier "bail"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "clap"
:: "::"
identifier "Parser"
; ";"
use_declaration (+41 nodes collapsed)
use_declaration (+74 nodes collapsed)
use_declaration
use "use"
scoped_identifier
identifier "serde"
:: "::"
identifier "Deserialize"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "collections"
:: "::"
identifier "HashMap"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "std"
:: "::"
identifier "fs"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "std"
:: "::"
identifier "path"
:: "::"
use_list
{ "{"
identifier "Path"
, ","
identifier "PathBuf"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "tree_sitter"
:: "::"
identifier "Node"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
scoped_identifier
identifier "codediff"
:: "::"
identifier "code"
:: "::"
identifier "language"
:: "::"
use_list
{ "{"
identifier "language_for_path"
, ","
identifier "to_treesitter"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "codediff"
:: "::"
identifier "code"
:: "::"
use_list
{ "{"
identifier "Code"
, ","
identifier "Language"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "codediff"
:: "::"
identifier "diff"
:: "::"
use_list
{ "{"
identifier "ASTDiff"
, ","
identifier "ASTMappingReason"
, ","
identifier "diff_code"
} "}"
; ";"
use_declaration (+46 nodes collapsed)
use_declaration (+27 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Parser"
, ","
identifier "Debug"
) ")"
] "]"
attribute_item
# "#"
[ "["
attribute
identifier "command"
token_tree
( "("
identifier "author"
, ","
identifier "version"
, ","
identifier "about"
= "="
string_literal
" "\""
string_content "Interactively build a human ground-truth AST mapping for an "...
" "\""
) ")"
] "]"
struct_item (+31 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Shown by the `?` help popup (`Modal::Help`). Kept as a plai"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " fuller explanations in this file's own doc comment, so it f"...
const_item
const "const"
identifier "HELP_TEXT"
: ":"
reference_type
& "&"
primitive_type "str"
= "="
string_literal
" "\""
escape_sequence "\\\n"
string_content "Tab switch focus between Before/After panels\nUp/k"...
escape_sequence "\\\""
string_content " - SOLVED"
escape_sequence "\\\""
string_content ", rejected ones "
escape_sequence "\\\""
string_content " - REJECTED"
escape_sequence "\\\""
string_content " --\n press H inside this picker to hide/show"...
" "\""
; ";"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Loads and parses the before/after code for a test case, by "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " directory (rather than every directory under src/test/data/"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `handmade_test_code_pairs`-style lookup would) since this r"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " just at startup. Resolves across `DIFF_DATASETS` (`handmade"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " own `diffs_case_dir`, same as every other per-name lookup i"...
function_item (+323 nodes collapsed)
function_item (+73 nodes collapsed)
function_item (+73 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The dataset (`handmade`/`small`/`full`) an existing diffs/ "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " under, for display purposes (the title bar, prompts) - `Non"...
function_item (+84 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Names of every directory directly under `root` (not just th"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " into a Code pair), for the `o`/`O` open pickers.\n"
function_item (+217 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Every case name across all three dataset folders (`handmade"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " doesn't distinguish between them (see the title bar's `[dat"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " where a given case actually lives), since names are unique "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`action_promote`'s collision check spans all three too).\n"
function_item (+142 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `options` (`list_available_cases`'s output) narrowed to jus"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " entry's name, unsorted-relative-to-each-other-again since `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " when `filter` is `None` (\"all\") - and, if `hide_complete` i"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `completeness` marks as having at least one `NodeStatus::Un"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `diff_case_is_incomplete`). A case missing from `completene"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `compute_diff_completeness` couldn't load it) is kept visib"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " open, since hiding something the scan never actually confir"...
function_item (+220 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Builds the `o` picker's modal from a freshly-listed `option"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " already open, so it starts selected if it's still visible u"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `hide_complete`), and the persisted `dataset_filter`/`hide_"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `diff_hide_complete`) - same shape as `open_sample_picker_m"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " reason: keeping the real logic here, not in the `KeyCode::C"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " makes it unit-testable without real files under src/test/da"...
function_item (+182 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Cycles the `o` picker's dataset filter, in `DIFF_DATASETS` "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`None`) after the last one - `d`'s handler, same conventio"...
function_item (+123 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Whether any node in `root`'s subtree has `NodeStatus::Unmar"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " on the first one found, so only a fully-annotated (\"complet"...
function_item (+147 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Whether `name`'s current human-authored mapping leaves any "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " tree, `NodeStatus::Unmarked` - i.e. whether there's still a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the case's code or mapping couldn't be loaded at all - no `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " that doesn't parse as a valid case, or (rarer) source that "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " treats every one of those the same as `Some(true)` (\"needs "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " excluding a broken case from the incomplete-only view - a c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the kind of thing this filter should surface, not hide. Pre"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " still goes through `load_case`'s own error handling as norm"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " what opening it does, only whether `H` shows it.\n"
function_item (+191 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Refreshes just `name`'s entry in `App::diff_completeness`, "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " this session - called after a save, since that's the only w"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " mid-session, and a targeted single-fixture refresh is cheap"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (see that field's own doc comment for why that's worth avoi"...
function_item (+80 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Builds `App::diff_completeness` for every case `list_availa"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `o` picker's `H` toggle needs this for the whole corpus bef"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `hide_solved` (a cheap lookup against sample.csv, no parsin"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " this repo's whole ~230-fixture corpus (roughly 10s, most of"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " unmarked-node check itself) specifically because `rebuild_c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " entry's path through a `PathCache` rather than rescanning s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `rebuild_caches`'s own doc comment for the very different c"...
function_item (+123 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A sample's disposition, as recorded in its sample.csv row's"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " nothing has been decided yet (including when the row predat"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " at all: the same \"nothing decided\" default `default_status`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " use). Drives the `O` picker's \" - SOLVED\"/\" - REJECTED\" suf"...
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "Copy"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "SampleTriageStatus"
enum_variant_list
{ "{"
enum_variant
identifier "Sampled"
, ","
enum_variant
identifier "Promoted"
, ","
enum_variant
identifier "Rejected"
, ","
} "}"
impl_item
impl "impl"
type_identifier "SampleTriageStatus"
declaration_list
{ "{"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Whether `hide_solved` should hide this sample: both a promo"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " finished triage decision -- nothing left to review -- unlik"...
function_item
fn "fn"
identifier "is_handled"
parameters
( "("
self_parameter
self "self"
) ")"
-> "->"
primitive_type "bool"
block
{ "{"
macro_invocation
identifier "matches"
! "!"
token_tree
( "("
self "self"
, ","
identifier "SampleTriageStatus"
:: "::"
identifier "Promoted"
| "|"
identifier "SampleTriageStatus"
:: "::"
identifier "Rejected"
) ")"
} "}"
} "}"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Every sample directory name under src/test/data/samples/, p"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample.csv row it came from. A sample's status is looked up"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (language, repository, commit, path) against a sample.csv r"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `action_promote`/`action_reject` use, so it stays correct e"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " later renamed or the sample directory has a numbered suffix"...
function_item
fn "fn"
identifier "list_samples_with_status"
parameters
( "("
) ")"
-> "->"
generic_type
type_identifier "Result"
type_arguments
< "<"
generic_type
type_identifier "Vec"
type_arguments
< "<"
tuple_type
( "("
type_identifier "String"
, ","
type_identifier "SampleTriageStatus"
) ")"
> ">"
> ">"
block (+154 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Reads just the provenance out of a sample's `source.json`, "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " code (unlike `load_sample`) -- cheap enough to call once pe"...
function_item (+86 nodes collapsed)
function_item (+50 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The triage status of every row in the sample.csv at `path`,"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " commit, path). Returns an empty map, not an error, if `path"...
function_item (+207 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Provenance recorded by `materialize_test_diffs` alongside e"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " fixture (`source.json`): the exact `sample.csv` row it came"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " promoted, to find and update that row without having to rev"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (lossy: lowercased, 8-char commit) directory name, and (`da"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `DIFF_DATASETS` `action_promote` should place the fixture u"...
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "Deserialize"
) ")"
] "]"
struct_item (+66 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Historical default for provenance that predates this field:"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `dataset` existed really was pulled from the small research"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " on this machine at the time), so this is a real fallback va"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `SampleSource::dataset`'s serde default and `ensure_stub_te"...
function_item (+22 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A starting point for `s`'s promote-name prompt: `<language>"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " repository's trailing `.git` stripped - same transformation"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `base_name` applies to these same two fields, so the prefix"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the convention every existing promoted name follows. Delibe"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " name: the descriptive suffix (what actually changed, e.g. \""...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " judgment, and `validate_new_case_name` still rejects this i"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " invalid, same as before - this only saves retyping the boil"...
function_item (+83 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Loads and parses the before/after code for a sampled candid"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `src/test/data/samples/<name>/`, along with its recorded pr"...
function_item (+341 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Runs the system `diff -u` between `before_src` and `after_s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " against codediff's own AST-based diff. Writes both sides to"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " relying on any on-disk path the content may have originally"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " exactly what's currently loaded, regardless of case origin."...
function_item (+376 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Reads the raw `before.<ext>.test`/`after.<ext>.test` conten"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " parsing an AST -- cheap enough to call once per sample when"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " text-diff-size sort keys (unlike `load_sample`, which parse"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " display them). `None` if either file is missing or unreadab"...
function_item (+291 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The number of changed (`+`/`-`, excluding the `+++`/`---` h"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `diff -u` between a sample's raw before/after content -- th"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `SampleSortOrder::{Smallest,Largest}DiffFirst`. A cheap, la"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " change is this\" that needs no AST, unlike every other size "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " with. `0` (not an error) if the sample's files can't be rea"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " missing/malformed sample just sorts as if it were empty rat"...
function_item (+188 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Sort order for the `O` (open sample) picker's list, cycled "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `Modal::OpenSamplePicker`). `SmallestDiffFirst`/`LargestDif"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `sample_diff_line_count` - useful for triaging samples by h"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " likely to take, without needing to open each one first to f"...
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "Copy"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "SampleSortOrder"
enum_variant_list
{ "{"
enum_variant
identifier "Alphabetical"
, ","
enum_variant
identifier "ReverseAlphabetical"
, ","
enum_variant
identifier "SmallestDiffFirst"
, ","
enum_variant
identifier "LargestDiffFirst"
, ","
} "}"
impl_item (+147 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Sample entries actually shown in the `O` picker: `options` "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " ordered by `sort_order`. Shared by the render function and "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " what index `selected` refers to by construction, rather tha"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " maintained copies of the same filter/sort logic in sync by "...
function_item (+289 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Builds the `O` picker's modal from a freshly-listed `option"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " already open, so it starts selected if it's a sample too), "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `sort_order` (`App::sample_hide_solved`/`sample_sort_order`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the `KeyCode::Char('O')` handler that calls it, specificall"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " logic to get wrong - is unit-testable without needing real "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `src/test/data/samples/` the way `list_samples_with_status`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `selected` is computed against `visible_sample_options`'s o"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `hide_solved`/`sort_order` differ from `options`' own natur"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " hidden), a raw-`options` position would point at the wrong "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the filtered/sorted list.\n"
function_item (+148 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The first 8 characters of a full commit hash, for compact d"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " length. `hash` is always a full 40-character SHA here (from"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " never actually needs the `.min()` clamp in practice; it's t"...
function_item (+43 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Every commit in this repository's own history (not a resear"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sibling `samples_root`, which is what `O` reads from instea"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `(full hash, subject line)` - the `C` picker's options. Use"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " than a visible character to split the two `git log` fields,"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " almost anything else.\n"
function_item (+252 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Paths changed by commit `hash`, narrowed to ones `to_treesi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " an unsupported one (e.g. a `.md` or `.toml` file, both of w"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " recognizes but codediff has no grammar for) would just fail"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " error, so it's left out of the list entirely instead. Doesn"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `git diff-tree`: a renamed-with-edits file already shows as"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " a pure rename with no edits showing up as a delete+add pair"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " this picker rather than something worth chasing. Also empty"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `git diff-tree` shows no diff for one by default (needs `-m"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `C` picker's Enter handler folds this into the same \"nothin"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " empty/unsupported-only commit, which is close enough not to"...
function_item (+280 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The content of `rev_path` (e.g. `\"<hash>:<path>\"` or `\"<has"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `git show`, in this repository. Empty, not an error, when `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " path that matters here is a file that genuinely doesn't exi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " commit being diffed, so it has no \"before\"; deleted by it, "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " being a root commit, so `<hash>^` doesn't resolve at all) -"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sides, exactly like a missing side already means for `load_"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " can't even run is still a real error, surfaced via `.contex"...
function_item (+173 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Loads the before/after content for `path` as changed by com"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " git (`git_show`) rather than from any on-disk fixture - bef"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `path` at `hash` itself. Mirrors `load_sample`'s AST checks"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " either side's language has no AST (unsupported or undetecte"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " would.\n"
function_item (+273 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A starting point for `s`'s promote-name prompt when the cur"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " a sample: just `<language>-` (e.g. \"rust-\"), lowercased - u"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " there's no second repository name to prefix with, since the"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Empty (no dash at all) if `path`'s language can't be determ"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " happen for a case that actually made it here: `load_git_com"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " language with a working `to_treesitter` mapping before this"...
function_item (+81 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Which of `DIFF_DATASETS` `s`'s promote prompt (`Modal::Prom"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " current case into - shared by that prompt's own display tex"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " destination, so the two can never say something different ("...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " replaced: the prompt's text used to name a fixed folder reg"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `None` for `CaseOrigin::Diffs`, which never raises this pro"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `action_save`) - kept in the match anyway so a fourth origi"...
function_item (+94 nodes collapsed)
function_item (+382 nodes collapsed)
function_item (+90 nodes collapsed)
function_item (+76 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "Copy"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "Focus"
enum_variant_list
{ "{"
enum_variant
identifier "Before"
, ","
enum_variant
identifier "After"
, ","
} "}"
impl_item (+50 nodes collapsed)
struct_item (+52 nodes collapsed)
impl_item (+59 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A blocking prompt raised by `m`/`M` that needs a direct hum"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " can be finalized. While `App::modal` is `Some`, the event l"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `handle_modal_key` instead of the normal keybindings.\n"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
) ")"
] "]"
enum_item (+596 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Which open picker (`o`, `O`, or `C`) a pending switch came "...
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
) ")"
] "]"
enum_item (+51 nodes collapsed)
impl_item (+69 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Where the currently open case's content lives: a committed "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample, or a file read straight out of this repository's ow"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `s` does (see `Modal::PromptPromoteName`) and what `o`/`O`/"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " away with unsaved changes.\n"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
) ")"
] "]"
enum_item (+47 nodes collapsed)
struct_item (+406 nodes collapsed)
impl_item (+216 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Flattens a tree into preorder (node, depth) pairs, skipping"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (if `hidden` is given) any node -- and its whole subtree --"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node that's hidden this way doesn't get a row of its own, u"...
function_item (+122 nodes collapsed)
function_item (+237 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Node IDs whose entire subtree -- the node itself and every "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " other than `Unmarked`: nothing left in it to review. Used b"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " prune those subtrees from the flattened view (via `flatten_"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node that's still `Unmarked` stays visible, along with its "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " an `Unmarked` node can never itself be fully solved, so it'"...
function_item (+88 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Post-order: returns whether `node`'s own subtree is fully s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " so. A node counts as solved only if it is itself marked *an"...
function_item (+175 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " codediff's own per-node verdict, computed from an `ASTDiff`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " is computed from the human mapping, but collapsed to a sing"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " with-children/inherited marks: `before_node_map`/`after_nod"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " every descendant node directly, since codediff maps (or zer"...
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "Copy"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item (+33 nodes collapsed)
function_item (+84 nodes collapsed)
function_item (+84 nodes collapsed)
function_item (+75 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Which pass produced the Before node's mapping entry, if any"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " per node (see `apted::common::add_delete_mappings`/`add_ins"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `(before_id, after_id)` with `0` standing in for \"no partne"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " this looks up the entry the same way for a match, a delete,"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node -- `None` only when `before_node_map` itself has no en"...
function_item (+99 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same as [`algo_reason_before`], but for the After tree.\n"
function_item (+99 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Short column-style label for an `ASTMappingReason`. Thin wr"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `ASTMappingReason::bucket_label`, shared with `src/bin/benc"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " reason-count columns so the same abbreviation means the sam"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `APTED`'s provenance payload to a bare \"APTED\" - see [`reas"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " shows it.\n"
function_item (+28 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same short label as [`reason_label`], except for `APTED`, w"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " provenance payload (e.g. `\"APTED:final_pass\"`) - see `ASTMa"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " on why that payload exists. Used for the `r`-toggle's per-n"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " \"which pass matched it\" is exactly the point; `reason_label"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " everywhere a stable, provenance-independent abbreviation is"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " table this tool shares an abbreviation scheme with).\n"
function_item (+62 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " True if codediff's verdict for the Before `node` disagrees "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " actually made a decision about it: not just whether both si"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " they agree on *what* it's matched to (mirrors the compariso"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `optimal_solutions` tests). A node the human hasn't marked "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " it's never flagged, even if codediff already has an opinion"...
function_item (+169 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same as [`algo_disagrees_before`], but for the After tree.\n"
function_item (+169 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
function_item (+170 nodes collapsed)
function_item (+104 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Moves `panel`'s cursor forward to the next node (strictly a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `NodeStatus::Unmarked`, if one exists. Leaves the cursor un"...
function_item (+178 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " After a match finalizes, walks both panels' cursors forward"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (independently), as a quality-of-life step-through-the-tree"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " fresh from `app.mapping`, since the caller's caches predate"...
function_item (+121 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same as [`advance_both_to_next_unmarked`], but only for the"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " delete, which only touches the Before side, so only that cu"...
function_item (+84 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same as [`advance_both_to_next_unmarked`], but only for the"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " insert, which only touches the After side, so only that cur"...
function_item (+84 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Moves `panel`'s cursor to the next (`forward`) or previous "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " relative to its current position, wrapping around the ends "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " search. Returns the node landed on, or `None` if `disagrees"...
function_item (+292 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Implements `n`/`N`: moves the focused panel's cursor to the"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " verdict (`p`) disagrees with the human mapping (the same co"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " in `render_panel`). Requires `p` to have been run at least "...
function_item (+226 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Moves `panel`'s cursor to the next leaf node (in `flat`'s o"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " text contains `query`, wrapping around like `n`/`N`'s misma"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`advance_to_next_mismatch`, which this otherwise mirrors e"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " generalized into one shared function, since the two predica"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `Caches`+`ASTDiff` vs. `query`+`src`, and a bare `fn` point"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Leaf nodes only (`child_count() == 0`), not \"any node whose"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " non-leaf node's own text is the concatenation of all its de"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " of a real match would *also* \"match\" under a naive whole-su"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " cursor positions, that means landing on some enclosing cont"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " of the actual token, which is not what a human doing the AS"...
function_item (+276 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Implements `/`'s search: moves the focused panel's cursor t"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `query`, starting just after its current position and wrapp"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " substring match - no regex, matching what was actually aske"...
function_item (+204 nodes collapsed)
function_item (+217 nodes collapsed)
function_item (+205 nodes collapsed)
function_item (+90 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Finds the node with id `id` anywhere in `root`'s subtree, r"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `flatten_visible`, which only sees expanded nodes). Used by"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node that may currently be hidden under a collapsed ancesto"...
function_item (+119 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Removes every strict ancestor of `node` from `collapsed`, s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " that panel's `flatten_visible` output.\n"
function_item (+87 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Shared tail of `action_align`/`action_align_algo`: moves th"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `target_id`. If the target is hidden under a collapsed ance"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " its path so it becomes visible. If the target wasn't alread"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " hidden, or just scrolled out of view), centers the other pa"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `idx.saturating_sub(half).min(max_scroll)` naturally clamps"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the tree, where a true center isn't possible.\n"
function_item (+431 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Implements `a`: aligns to the node the *human mapping* says"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " any. See [`align_cursor_to`] for how the target is made vis"...
function_item (+157 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Implements `A`: like `a`, but aligns to the node *codediff'"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node is mapped to, instead of the human mapping. Requires `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " for the current case, and fails if codediff mapped the curs"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " considers it deleted/inserted rather than matched).\n"
function_item (+218 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Removes any existing entry whose before_path resolves to `b"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " resolves to `after_id`, so that re-marking a node cleanly r"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " instead of leaving stale/contradictory entries behind.\n"
function_item (+273 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Like [`remove_direct_entries_for`], but removes every entry"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `after_ids` in one pass, instead of one id at a time. Used "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " a whole subtree's worth of potential conflicts before `auto"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " appends entries directly -- doing this per-node instead (i."...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " once per node like `apply_match_entry` does) is what made `"...
function_item (+255 nodes collapsed)
function_item (+112 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Finds a node anywhere in `root`'s subtree by id, unlike [`f"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " among the (possibly collapsed/hidden) visible rows a `flat`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " resolving a multi-map selection at commit time: a node togg"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `after_multi_select` with `x` can end up hidden by a later "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " before `m`/`M` commits the group, and it must still resolve"...
function_item (+133 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Removes any existing [`MultiMapGroup`] that shares a node ("...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `after_ids` - the group-level counterpart of [`remove_entri"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " new multi-map selection can't leave a stale group half-refe"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " reassigned to a different group or a plain match.\n"
function_item (+261 nodes collapsed)
function_item (+87 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Drops any entry whose before_path resolves to a strict desc"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " marking `ancestor` deleted-with-children, so a previous dir"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (e.g. a Match) can't survive alongside it and export a self"...
function_item (+126 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same as [`clear_before_descendants`], but for the After tre"...
function_item (+125 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " What an `m`/`M` press should do next: either it's fully res"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " or nothing needed to change), or it needs a direct human an"...
enum_item
enum "enum"
type_identifier "ActionOutcome"
enum_variant_list
{ "{"
enum_variant
identifier "Done"
ordered_field_declaration_list
( "("
type_identifier "String"
) ")"
, ","
enum_variant
identifier "NeedsModal"
ordered_field_declaration_list
( "("
type_identifier "Modal"
) ")"
, ","
} "}"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " True if `b` and `a` have the exact same text.\n"
function_item (+80 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Replaces any existing direct entry touching `b` or `a` with"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " under `operation`.\n"
function_item (+140 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Classifies a same-kind pair with children as `Identical` or"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " asking: `before_hash`/`after_hash` are each node's precompu"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " children's hashes, folded bottom-up -- see `code::hash::has"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " iff they're byte-identical. Missing hashes (shouldn't happe"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `ensure_parsed`) are treated conservatively as not identica"...
function_item (+125 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Classifies a multi-map selection's operation the same way ["...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " classifies a single pair - by full-content hash - generaliz"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " *every* selected node, on both sides, shares the exact same"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " N interchangeable copies of one subtree), `MatchButNotIdent"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " see `MultiMapGroup::operation`'s own doc comment for why a "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " call a text edit against.\n"
function_item (+231 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Commits `before_ids`/`after_ids` (a confirmed multi-map sel"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `after_multi_select`) as a new [`MultiMapGroup`], clearing "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " that touched one of these nodes first (the group-level equi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " \"replace whatever was there\" behavior for a single pair).\n"
function_item (+643 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " What `m`/`M` does when the multi-map selection (`App::befor"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " is non-empty: infers the group's operation (see [`multi_map"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " commits it directly (every selected node shares one AST kin"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `Modal::ConfirmMultiMapGroup` first - the group-level count"...
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+597 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Builds the `NeedsModal` outcome for a before/after cursor p"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " shared by every action that requires same-kind nodes before"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " distinguishes a single-node match attempt (`m`, `false`) fr"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " - see [`Modal::ConfirmKindMismatch`].\n"
function_item (+106 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Classifies a same-kind cursor pair as it would be auto-clas"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `Identical`/`Update` by raw text for a leaf pair, or via [`"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " hash) for a pair with children. Shared by [`action_match`] "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " both just need the resulting operation before continuing th"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " - unlike [`action_match_subtree`]'s leaf case, which resolv"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " of continuing, so it classifies its own leaf pairs inline"...
function_item (+167 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+373 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Implements `f`: repeats exactly what a single `m` press doe"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " cursor nodes (auto-classified Identical/Update for leaves, "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " children, precisely like [`action_match`]), then advance bo"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `Unmarked` node -- over and over, as if `m` were being pres"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Stops in exactly the two places a human doing that would ha"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " has an `Unmarked` node left to advance to (there's nothing "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the moment the next pair has different kinds, which is prec"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " raise [`Modal::ConfirmKindMismatch`] instead of matching ou"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " that point is kept; pressing `f` again after resolving the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sweep from the new cursor position.\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Deliberately doesn't go through [`apply_match_entry`]/[`reb"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " every single node the way a literal \"call `action_match` in"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " those are built for a human's pace (one call per keypress, "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " each costs O(current entry count) or O(sibling count) -- fi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " loop can run once per AST node, so paying that on every ite"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " O(n^2). Two real fixtures exposed this: a ~5,500-node real-"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " matches and climbing (`rebuild_caches`/`apply_match_entry`'"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " large flat JSON-array-shaped tree took 52s even after that "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " occurrence-counting, paid per node, on a level with thousan"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " worked around here: `caches` is built once and updated incr"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " appended directly, skipping `apply_match_entry`'s dedup sca"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `status_before`/`status_after` having just reported `Unmark"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " existing entry to remove); cursors are tracked as plain ind"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " so advancing never re-scans from the start; and every node'"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " built by one O(n) pass per tree ([`precompute_paths`]) inst"...
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+848 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The first index at or after `start` whose node is `Unmarked"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Callers that advance `start` monotonically across repeated "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " does) get amortized O(n) total work rather than O(n) *per c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " ever examined once across the whole sweep.\n"
function_item (+108 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+580 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Auto-matches `b` <-> `a` and all descendants, with no promp"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Identical/Update by comparing text; container nodes are cla"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " descendant came back Identical too, otherwise MatchButNotId"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " matching further) the moment a level's child-kind sequences"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " covered by an unrelated ancestor mark. Returns whether the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Used to bulk-fill the rest of an `M` (recursive match) afte"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " has already been decided (via `subtree_match_operation` or "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " -- classifying each descendant individually by hash keeps t"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Any pair (this one or a descendant) that ends up classified"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " also collapsed in both panels, so a whole-unchanged subtree"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the main payoff of `M` over doing the same matches one at a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Rather than pushing straight into `mapping.entries` (via `a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " O(current entry count) per call through its dedup scan -- r"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " would turn that into O(k^2), exactly the hang `action_match"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " fixed the same way, and `M` hits it too since this function"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " buffers new entries into `new_entries` and records every no"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `touched_before`/`touched_after`. The caller ([`apply_modal"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " entries for exactly those touched ids in one batch pass *af"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " appends `new_entries` -- cheaper than a scan per node, and "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " collecting a subtree's ids up front isn't: recursion can ba"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " mismatch or a shape mismatch) without visiting its descenda"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " was never visited must keep whatever pre-existing entry it "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " happened to be nested under the node `M` was pressed on.\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment "\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Paths are looked up from `before_paths`/`after_paths` (each"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `apply_modal_choice`, by [`precompute_paths`]) instead of c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " node, for the same reason.\n"
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+940 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Applies `operation` to the top pair -- whether decided by `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " confirmed `Modal::ConfirmKindMismatch` -- and if `recursive"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " via [`auto_match_pair`].\n"
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+780 nodes collapsed)
function_item (+283 nodes collapsed)
function_item (+283 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+518 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Clone"
, ","
identifier "Copy"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "Side"
enum_variant_list
{ "{"
enum_variant
identifier "Before"
, ","
enum_variant
identifier "After"
, ","
} "}"
function_item (+177 nodes collapsed)
function_item (+490 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+1108 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Below this terminal width, `draw_ui` shows only the focused"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " instead of splitting the screen 50/50 - two half-width pane"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " become unreadable on a narrow terminal. Shared with the mai"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the same readability constraint.\n"
const_item
const "const"
identifier "SINGLE_PANEL_WIDTH_THRESHOLD"
: ":"
primitive_type "u16"
= "="
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "codediff"
:: "::"
identifier "tui"
:: "::"
identifier "components"
:: "::"
identifier "diff_viewer"
:: "::"
identifier "SINGLE_PANEL_THRESHOLD"
; ";"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+996 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A `percent_x` x `percent_y` box centered within `area`.\n"
function_item (+208 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Like `centered_rect`, but never shrinks the popup below `mi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " to `area` itself, since a terminal can be smaller than the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " effectively reducing the percentage-based margin/padding on"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " letting the content not fit. Real, not hypothetical: on a s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " phone is the motivating case), `render_text_modal`'s `cente"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " out short enough that the `> {input}` line - well past the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " instructions - scrolled out of the visible area entirely, w"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " since a plain `Paragraph` has no \"not everything fit\" affor"...
function_item (+174 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+857 nodes collapsed)
function_item (+308 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `t` (text view) modal: the raw before/after sou"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " rather than the AST tree -- useful for just reading the cod"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " identically, since it's meant for eyeballing roughly-aligne"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " navigation.\n"
function_item (+335 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `T` (unix diff) modal: the already-computed out"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " and after content, with `+`/`-` lines colored to match the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " convention and `@@` hunk headers highlighted.\n"
function_item (+421 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `?` help modal: a static reference sheet of eve"...
function_item (+170 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `o`/`O` (open) pickers: a scrollable list of na"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " for `O`, per `kind`), with `selected` highlighted. Scroll p"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " frame from `selected` (no persisted state needed) by roughl"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " clamped to the list's extent.\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The `o` picker. Like `render_open_sample_picker`, the datas"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`visible_diff_options`) is recomputed here from `options`/"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " carried on the modal itself, so the two can never drift out"...
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+519 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Like `render_open_diff_picker`, but for `O`'s sample picker"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " -rejected) entries are shown in green (\" - SOLVED\") or red "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " the list entirely when `hide_solved` is set, and ordered pe"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `SampleSortOrder`). Each entry also shows its `sample_diff_"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " effect of switching to a diff-size order is visible directl"...
function_item (+671 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `C` picker's first step: pick a commit from thi"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`list_repo_commits`'s `(hash, summary)` pairs, newest firs"...
function_item (+455 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Renders the `C` picker's second step: pick which of `summar"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " a supported language - see `list_commit_files`) to open.\n"
function_item (+443 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Everything derived from the current trees, mapping, and col"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " frame or interpreting a keystroke needs. Rebuilding this is"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " handful of whole-tree passes); see `run_event_loop`'s `need"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " once per keystroke rather than on every idle poll timeout.\n"
struct_item (+147 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " The number of `flat`'s nodes with `NodeStatus::Unmarked`, p"...
function_item (+97 nodes collapsed)
function_item (+383 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " What a case session (`run_case_session`) ended on: either t"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " switch to a different case (`o`/`O`'s pickers, or a discard"...
enum_item
enum "enum"
type_identifier "SessionEnd"
enum_variant_list
{ "{"
enum_variant
identifier "Quit"
, ","
enum_variant
identifier "Open"
ordered_field_declaration_list
( "("
type_identifier "OpenTarget"
) ")"
, ","
} "}"
function_item (+1166 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Whether `code`, delivered while `modal` is open, is guarant"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " panel's collapsed set, or `hide_solved` -- the three things"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `FrameState` depends on. Only typing into (or backspacing o"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `PromptPromoteName`'s own `input` string qualifies: both mo"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " response to these keys, everything else about the case is u"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " including Enter/Esc on these same two modals, which can sea"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " save, or close the modal -- is treated conservatively as \"m"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " cache is thrown away and rebuilt fresh, exactly as if this "...
function_item (+90 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Runs the event loop for a single case (before/after AST pai"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " switch to a different one. Split out from `run_event_loop` "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " below -- which borrows from `before`/`after` -- never has t"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " them: `before`/`after` are `&Code` here, immutable for this"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " survive across as many keystrokes as it likes with no lifet"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " reported back to the caller as a `SessionEnd::Open` instead"...
function_item (+723 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+3682 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Routes a keypress while `app.modal` is `Some`. Returns `Som"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " confirmed switching to a different test case (via the open "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " discard decision): the caller is responsible for actually l"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " mutable access to the owned `Code` values that `run_event_l"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " down here alongside `Node`s borrowed from them.\n"
attribute_item
# "#"
[ "["
attribute
identifier "allow"
token_tree
( "("
identifier "clippy"
:: "::"
identifier "too_many_arguments"
) ")"
] "]"
function_item (+5356 nodes collapsed)
function_item (+118 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Rust keywords (2015 through 2024 edition, strict and reserv"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " name directly into a module identifier (`-` -> `_`), so a n"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " would produce a stub that fails to compile -- caught here i"...
const_item (+279 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " A name must be non-empty, start with a letter (so `module_n"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `_` -- produces a valid Rust identifier) and contain only c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " a directory name.\n"
function_item (+216 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Promotes the currently open sample or git-commit-sourced ca"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `CaseOrigin::Sample` or `CaseOrigin::GitCommitFile`) into a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `src/test/data/diffs/<dataset>/<new_name>/` (`dataset` per "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample's own recorded `source.dataset`, or always `\"handmad"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " copies the before/after content sitting in `before_src`/`af"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " on screen), saves human_mapping.json and the optimal_soluti"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `action_save` path, and -- for a sample only, since a git-c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample.csv row to update -- records `new_name` against the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " success, `app` is switched over to the new diffs/ case so s"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " normal save.\n"
function_item (+742 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Rejects the currently open sample instead of promoting it: "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample.csv row (`rejection_reason`, with `status` set to `R"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " -- the sample directory, `promoted_to` -- untouched. Only a"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " update; a git-commit-sourced case (`CaseOrigin::GitCommitFi"...
function_item (+161 nodes collapsed)
function_item (+73 nodes collapsed)
struct_item (+61 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Same backfill `sample_test_diffs::default_status` uses for "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `status` existed: duplicated rather than shared across the "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `dataset` fallback (\"small\") a few lines below already is.\n"
function_item (+49 nodes collapsed)
function_item (+360 nodes collapsed)
function_item (+232 nodes collapsed)
function_item (+45 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Marks the sample.csv row matching `source` as promoted to `"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " row and column untouched. Returns `Ok(false)` (not an error"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sample was placed under samples/ by hand rather than by `sa"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " shouldn't undo a promotion that has already otherwise succe"...
function_item (+232 nodes collapsed)
function_item (+45 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Marks the sample.csv row matching `source` as rejected with"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " row and column untouched -- the reject counterpart of `upda"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " deliberately left as-is (empty, in practice: `action_reject"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " that's still `CaseOrigin::Sample`, which a promotion would "...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " rejected sample was never promoted. Returns `Ok(false)` (no"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " reasoning as `update_sample_csv_at`.\n"
function_item (+232 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
const_item
const "const"
identifier "LICENSE_HEADER"
: ":"
reference_type
& "&"
primitive_type "str"
= "="
string_literal
" "\""
string_content "/* This file is part of the CodeDiff code diffing tool.\n *\n"...
" "\""
; ";"
function_item (+31 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " `optimal_solutions/` mirrors `diffs/`'s three-way split (se"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " fixtures get their stub test files here, alongside `optimal"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (see `optimal_solutions_mod_file`).\n"
function_item (+76 nodes collapsed)
function_item (+85 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Creates `optimal_solutions/<dataset>/<name>.rs` if it doesn"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " it's registered in `optimal_solutions/<dataset>.rs`. Return"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " newly created. `dataset` is resolved from `name`'s actual l"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " (`case_dataset`) - every caller (an already-open existing c"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " creates the diffs/ directory before calling this) runs afte"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " there's always a real dataset to resolve, no separate param"...
function_item (+203 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Adds `#[cfg(test)]\\nmod <module>;` to `optimal_solutions/<d"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " sorted, unless it's already present.\n"
function_item (+603 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "cfg"
token_tree
( "("
identifier "test"
) ")"
] "]"
mod_item (+31518 nodes collapsed)