Refactor code for consistency and enhanced functionality.
- Normalize path handling for buffer operations, supporting tilde expansion and absolute paths. - Introduce `DisplayNameFor` to uniquely resolve buffer display names, minimizing filename clashes. - Add new commands: `ShowWorkingDirectory` and `ChangeWorkingDirectory`. - Refine keybindings and enhance existing commands for improved command flow. - Adjust GUI and terminal renderers to display total line counts alongside filenames. - Update coding style to align with project guidelines.
This commit is contained in:
@@ -168,13 +168,13 @@ TerminalRenderer::Draw(Editor &ed)
|
||||
const Buffer *b = buf;
|
||||
std::string fname;
|
||||
if (b) {
|
||||
fname = b->Filename();
|
||||
}
|
||||
if (!fname.empty()) {
|
||||
try {
|
||||
fname = std::filesystem::path(fname).filename().string();
|
||||
fname = ed.DisplayNameFor(*b);
|
||||
} catch (...) {
|
||||
// keep original on any error
|
||||
fname = b->Filename();
|
||||
try {
|
||||
fname = std::filesystem::path(fname).filename().string();
|
||||
} catch (...) {}
|
||||
}
|
||||
} else {
|
||||
fname = "[no name]";
|
||||
@@ -183,6 +183,13 @@ TerminalRenderer::Draw(Editor &ed)
|
||||
left += fname;
|
||||
if (b && b->Dirty())
|
||||
left += " *";
|
||||
// Append total line count as "<n>L"
|
||||
if (b) {
|
||||
unsigned long lcount = static_cast<unsigned long>(b->Rows().size());
|
||||
left += " ";
|
||||
left += std::to_string(lcount);
|
||||
left += "L";
|
||||
}
|
||||
}
|
||||
|
||||
// Build right segment (cursor and mark)
|
||||
|
||||
Reference in New Issue
Block a user