summaryrefslogtreecommitdiff
path: root/Libraries/LibLine
diff options
context:
space:
mode:
authorAnotherTest <ali.mpfard@gmail.com>2020-05-23 03:19:48 +0430
committerAndreas Kling <kling@serenityos.org>2020-05-23 01:31:41 +0200
commit909ac2a5580138ca7d248b94e2ff096d11f153f7 (patch)
tree56efd3bb6783ad172434d6e814912057d9f46669 /Libraries/LibLine
parent3c3edf583116037f43e1e031f6f7ade6d7c55709 (diff)
downloadserenity-909ac2a5580138ca7d248b94e2ff096d11f153f7.zip
LibLine: Make the comments follow the project style
Diffstat (limited to 'Libraries/LibLine')
-rw-r--r--Libraries/LibLine/Editor.cpp120
-rw-r--r--Libraries/LibLine/Editor.h10
-rw-r--r--Libraries/LibLine/Style.h2
-rw-r--r--Libraries/LibLine/SuggestionManager.cpp10
-rw-r--r--Libraries/LibLine/SuggestionManager.h4
-rw-r--r--Libraries/LibLine/XtermSuggestionDisplay.cpp18
6 files changed, 81 insertions, 83 deletions
diff --git a/Libraries/LibLine/Editor.cpp b/Libraries/LibLine/Editor.cpp
index 18d691eb44..86297f15f7 100644
--- a/Libraries/LibLine/Editor.cpp
+++ b/Libraries/LibLine/Editor.cpp
@@ -294,7 +294,7 @@ String Editor::get_line(const String& prompt)
auto reverse_tab = false;
auto ctrl_held = false;
- // discard starting bytes until they make sense as utf-8
+ // Discard starting bytes until they make sense as utf-8.
size_t valid_bytes = 0;
while (nread) {
Utf8View { StringView { m_incomplete_data.data(), (size_t)nread } }.validate(valid_bytes);
@@ -395,8 +395,8 @@ String Editor::get_line(const String& prompt)
case 'C': // right
if (m_cursor < m_buffer.size()) {
if (ctrl_held) {
- // temporarily put a space at the end of our buffer
- // this greatly simplifies the logic below
+ // Temporarily put a space at the end of our buffer,
+ // doing this greatly simplifies the logic below.
m_buffer.append(' ');
for (;;) {
if (m_cursor >= m_buffer.size())
@@ -476,25 +476,25 @@ String Editor::get_line(const String& prompt)
if (!on_tab_complete)
continue;
- // reverse tab can count as regular tab here
+ // Reverse tab can count as regular tab here.
m_times_tab_pressed++;
int token_start = m_cursor;
- // ask for completions only on the first tab
- // and scan for the largest common prefix to display
- // further tabs simply show the cached completions
+ // Ask for completions only on the first tab
+ // and scan for the largest common prefix to display,
+ // further tabs simply show the cached completions.
if (m_times_tab_pressed == 1) {
m_suggestion_manager.set_suggestions(on_tab_complete(*this));
m_prompt_lines_at_suggestion_initiation = num_lines();
if (m_suggestion_manager.count() == 0) {
- // there are no suggestions, beep~
+ // There are no suggestions, beep.
putchar('\a');
fflush(stdout);
}
}
- // Adjust already incremented / decremented index when switching tab direction
+ // Adjust already incremented / decremented index when switching tab direction.
if (reverse_tab && m_tab_direction != TabDirection::Backward) {
m_suggestion_manager.previous();
m_suggestion_manager.previous();
@@ -523,7 +523,7 @@ String Editor::get_line(const String& prompt)
insert(view);
if (completion_result.style_to_apply.has_value()) {
- // Apply the style of the last suggestion
+ // Apply the style of the last suggestion.
readjust_anchored_styles(m_suggestion_manager.current_suggestion().start_index, ModificationKind::ForcedOverlapRemoval);
stylize({ m_suggestion_manager.current_suggestion().start_index, m_cursor, Span::Mode::CodepointOriented }, completion_result.style_to_apply.value());
}
@@ -560,9 +560,9 @@ String Editor::get_line(const String& prompt)
}
if (m_suggestion_manager.count() < 2) {
- // we have none, or just one suggestion
+ // We have none, or just one suggestion,
// we should just commit that and continue
- // after it, as if it were auto-completed
+ // after it, as if it were auto-completed.
suggest(0, 0, Span::CodepointOriented);
m_times_tab_pressed = 0;
m_suggestion_manager.reset();
@@ -572,11 +572,11 @@ String Editor::get_line(const String& prompt)
}
if (m_times_tab_pressed) {
- // Apply the style of the last suggestion
+ // Apply the style of the last suggestion.
readjust_anchored_styles(m_suggestion_manager.current_suggestion().start_index, ModificationKind::ForcedOverlapRemoval);
stylize({ m_suggestion_manager.current_suggestion().start_index, m_cursor, Span::Mode::CodepointOriented }, m_suggestion_manager.current_suggestion().style);
- // we probably have some suggestions drawn
- // let's clean them up
+ // We probably have some suggestions drawn,
+ // let's clean them up.
if (m_suggestion_display->cleanup()) {
reposition_cursor();
m_refresh_needed = true;
@@ -599,7 +599,7 @@ String Editor::get_line(const String& prompt)
remove_at_index(m_cursor - 1);
--m_cursor;
m_inline_search_cursor = m_cursor;
- // we will have to redraw :(
+ // We will have to redraw :(
m_refresh_needed = true;
};
@@ -661,15 +661,15 @@ String Editor::get_line(const String& prompt)
return;
};
- // whenever the search editor gets a ^R, cycle between history entries
+ // Whenever the search editor gets a ^R, cycle between history entries.
m_search_editor->register_character_input_callback(0x12, [this](Editor& search_editor) {
++m_search_offset;
search_editor.m_refresh_needed = true;
return false; // Do not process this key event
});
- // whenever the search editor gets a backspace, cycle back between history entries
- // unless we're at the zeroth entry, in which case, allow the deletion
+ // Whenever the search editor gets a backspace, cycle back between history entries
+ // unless we're at the zeroth entry, in which case, allow the deletion.
m_search_editor->register_character_input_callback(m_termios.c_cc[VERASE], [this](Editor& search_editor) {
if (m_search_offset > 0) {
--m_search_offset;
@@ -682,7 +682,7 @@ String Editor::get_line(const String& prompt)
// ^L - This is a source of issues, as the search editor refreshes first,
// and we end up with the wrong order of prompts, so we will first refresh
// ourselves, then refresh the search editor, and then tell him not to process
- // this event
+ // this event.
m_search_editor->register_character_input_callback(0x0c, [this](auto& search_editor) {
printf("\033[3J\033[H\033[2J"); // Clear screen.
@@ -716,7 +716,7 @@ String Editor::get_line(const String& prompt)
m_is_searching = false;
m_search_offset = 0;
- // manually cleanup the search line
+ // Manually cleanup the search line.
reposition_cursor();
auto search_string_codepoint_length = Utf8View { search_string }.length_in_codepoints();
VT::clear_lines(0, (search_string_codepoint_length + actual_rendered_string_length(search_prompt) + m_num_columns - 1) / m_num_columns);
@@ -724,14 +724,13 @@ String Editor::get_line(const String& prompt)
reposition_cursor();
if (!m_reset_buffer_on_search_end || search_string_codepoint_length == 0) {
- // if the entry was empty, or we purposely quit without a newline,
- // do not return anything
- // instead, just end the search
+ // If the entry was empty, or we purposely quit without a newline,
+ // do not return anything; instead, just end the search.
end_search();
continue;
}
- // return the string
+ // Return the string,
finish();
continue;
}
@@ -741,7 +740,7 @@ String Editor::get_line(const String& prompt)
if (codepoint == m_termios.c_cc[VEOF]) {
if (m_buffer.is_empty()) {
printf("<EOF>\n");
- if (!m_always_refresh) // this is a little off, but it'll do for now
+ if (!m_always_refresh) // This is a little off, but it'll do for now
exit(0);
}
continue;
@@ -774,7 +773,7 @@ bool Editor::search(const StringView& phrase, bool allow_empty, bool from_beginn
int last_matching_offset = -1;
- // do not search for empty strings
+ // Do not search for empty strings.
if (allow_empty || phrase.length() > 0) {
size_t search_offset = m_search_offset;
for (size_t i = m_history_cursor; i > 0; --i) {
@@ -798,25 +797,25 @@ bool Editor::search(const StringView& phrase, bool allow_empty, bool from_beginn
if (last_matching_offset >= 0) {
insert(m_history[last_matching_offset]);
}
- // always needed
+ // Always needed, as we have cleared the buffer above.
m_refresh_needed = true;
return last_matching_offset >= 0;
}
void Editor::recalculate_origin()
{
- // changing the columns can affect our origin if
+ // Changing the columns can affect our origin if
// the new size is smaller than our prompt, which would
// cause said prompt to take up more space, so we should
- // compensate for that
+ // compensate for that.
if (m_cached_prompt_length >= m_num_columns) {
auto added_lines = (m_cached_prompt_length + 1) / m_num_columns - 1;
m_origin_x += added_lines;
}
- // we also need to recalculate our cursor position
+ // We also need to recalculate our cursor position,
// but that will be calculated and applied at the next
- // refresh cycle
+ // refresh cycle.
}
void Editor::cleanup()
{
@@ -830,8 +829,8 @@ void Editor::cleanup()
void Editor::refresh_display()
{
auto has_cleaned_up = false;
- // someone changed the window size, figure it out
- // and react to it, we might need to redraw
+ // Someone changed the window size, figure it out
+ // and react to it, we might need to redraw.
if (m_was_resized) {
auto previous_num_columns = m_num_columns;
@@ -846,7 +845,7 @@ void Editor::refresh_display()
m_suggestion_display->set_vt_size(m_num_lines, m_num_columns);
if (previous_num_columns != m_num_columns) {
- // we need to cleanup and redo everything
+ // We need to cleanup and redo everything.
m_cached_prompt_valid = false;
m_refresh_needed = true;
swap(previous_num_columns, m_num_columns);
@@ -856,9 +855,9 @@ void Editor::refresh_display()
has_cleaned_up = true;
}
}
- // do not call hook on pure cursor movement
+ // Do not call hook on pure cursor movement.
if (m_cached_prompt_valid && !m_refresh_needed && m_pending_chars.size() == 0) {
- // probably just moving around
+ // Probably just moving around.
reposition_cursor();
m_cached_buffer_size = m_buffer.size();
return;
@@ -869,8 +868,8 @@ void Editor::refresh_display()
if (m_cached_prompt_valid) {
if (!m_refresh_needed && m_cursor == m_buffer.size()) {
- // just write the characters out and continue
- // no need to refresh the entire line
+ // Just write the characters out and continue,
+ // no need to refresh the entire line.
char null = 0;
m_pending_chars.append(&null, 1);
fputs((char*)m_pending_chars.data(), stdout);
@@ -882,7 +881,7 @@ void Editor::refresh_display()
}
}
- // ouch, reflow entire line
+ // Ouch, reflow entire line.
// FIXME: handle multiline stuff
if (!has_cleaned_up) {
cleanup();
@@ -910,10 +909,10 @@ void Editor::refresh_display()
for (auto& applicable_style : anchored_ends)
style.unify_with(applicable_style.value);
- // Disable any style that should be turned off
+ // Disable any style that should be turned off.
VT::apply_style(style, false);
- // go back to defaults
+ // Reapply styles for overlapping spans that include this one.
style = find_applicable_style(i);
VT::apply_style(style, true);
}
@@ -926,7 +925,7 @@ void Editor::refresh_display()
for (auto& applicable_style : anchored_starts)
style.unify_with(applicable_style.value);
- // set new options
+ // Set new styles.
VT::apply_style(style, true);
}
builder.clear();
@@ -998,7 +997,7 @@ void VT::move_relative(int x, int y)
Style Editor::find_applicable_style(size_t offset) const
{
- // walk through our styles and merge all that fit in the offset
+ // Walk through our styles and merge all that fit in the offset.
Style style;
auto unify = [&](auto& entry) {
if (entry.key >= offset)
@@ -1055,14 +1054,14 @@ String Style::Hyperlink::to_vt_escape(bool starting) const
void Style::unify_with(const Style& other, bool prefer_other)
{
- // unify colors
+ // Unify colors.
if (prefer_other || m_background.is_default())
m_background = other.background();
if (prefer_other || m_foreground.is_default())
m_foreground = other.foreground();
- // unify graphic renditions
+ // Unify graphic renditions.
if (other.bold())
set(Bold);
@@ -1072,7 +1071,7 @@ void Style::unify_with(const Style& other, bool prefer_other)
if (other.underline())
set(Underline);
- // unify links
+ // Unify links.
if (prefer_other || m_hyperlink.is_empty())
m_hyperlink = other.hyperlink();
}
@@ -1137,10 +1136,10 @@ void VT::apply_style(const Style& style, bool is_starting)
void VT::clear_lines(size_t count_above, size_t count_below)
{
- // go down count_below lines
+ // Go down count_below lines.
if (count_below > 0)
printf("\033[%dB", (int)count_below);
- // then clear lines going upwards
+ // Then clear lines going upwards.
for (size_t i = count_below + count_above; i > 0; --i)
fputs(i == 1 ? "\033[2K" : "\033[2K\033[A", stdout);
}
@@ -1180,13 +1179,12 @@ size_t Editor::actual_rendered_string_length(const StringView& string) const
auto c = *it;
switch (state) {
case Free:
- if (c == '\x1b') {
- // escape
+ if (c == '\x1b') { // escape
state = Escape;
continue;
}
- if (c == '\r' || c == '\n') {
- // reset length to 0, since we either overwrite, or are on a newline
+ if (c == '\r' || c == '\n') { // return or carriage return
+ // Reset length to 0, since we either overwrite, or are on a newline.
length = 0;
continue;
}
@@ -1235,8 +1233,8 @@ Vector<size_t, 2> Editor::vt_dsr()
char buf[16];
u32 length { 0 };
- // read whatever junk there is before talking to the terminal
- // and insert them later when we're reading user input
+ // Read whatever junk there is before talking to the terminal
+ // and insert them later when we're reading user input.
bool more_junk_to_read { false };
timeval timeout { 0, 0 };
fd_set readfds;
@@ -1311,7 +1309,7 @@ bool Editor::should_break_token(Vector<u32, 1024>& buffer, size_t index)
void Editor::remove_at_index(size_t index)
{
- // see if we have any anchored styles, and reposition them if needed
+ // See if we have any anchored styles, and reposition them if needed.
readjust_anchored_styles(index, ModificationKind::Removal);
m_buffer.remove(index);
}
@@ -1331,21 +1329,21 @@ void Editor::readjust_anchored_styles(size_t hint_index, ModificationKind modifi
for (auto& end_entry : start_entry.value) {
if (forced_removal) {
if (start_entry.key <= hint_index && end_entry.key > hint_index) {
- // remove any overlapping regions
+ // Remove any overlapping regions.
continue;
}
}
if (start_entry.key >= hint_index) {
if (start_entry.key == hint_index && end_entry.key == hint_index + 1 && modification == ModificationKind::Removal) {
- // remove the anchor, as all its text was wiped
+ // Remove the anchor, as all its text was wiped.
continue;
}
- // shift everything
+ // Shift everything.
anchors_to_relocate.append({ { start_entry.key, end_entry.key, Span::Mode::CodepointOriented }, { start_entry.key + index_shift, end_entry.key + index_shift, Span::Mode::CodepointOriented }, end_entry.value });
continue;
}
if (end_entry.key > hint_index) {
- // shift just the end
+ // Shift just the end.
anchors_to_relocate.append({ { start_entry.key, end_entry.key, Span::Mode::CodepointOriented }, { start_entry.key, end_entry.key + index_shift, Span::Mode::CodepointOriented }, end_entry.value });
continue;
}
@@ -1355,7 +1353,7 @@ void Editor::readjust_anchored_styles(size_t hint_index, ModificationKind modifi
m_anchored_spans_ending.clear();
m_anchored_spans_starting.clear();
- // pass over the relocations and update the stale entries
+ // Pass over the relocations and update the stale entries.
for (auto& relocation : anchors_to_relocate) {
stylize(relocation.new_span, relocation.style);
}
diff --git a/Libraries/LibLine/Editor.h b/Libraries/LibLine/Editor.h
index ccbb77d5c6..b3394dca15 100644
--- a/Libraries/LibLine/Editor.h
+++ b/Libraries/LibLine/Editor.h
@@ -109,8 +109,8 @@ public:
Function<void()> on_interrupt_handled;
Function<void(Editor&)> on_display_refresh;
- // FIXME: we will have to kindly ask our instantiators to set our signal handlers
- // since we can not do this cleanly ourselves (signal() limitation: cannot give member functions)
+ // FIXME: we will have to kindly ask our instantiators to set our signal handlers,
+ // since we can not do this cleanly ourselves. (signal() limitation: cannot give member functions)
void interrupted()
{
if (m_is_editing)
@@ -124,7 +124,7 @@ public:
String line() const { return line(m_buffer.size()); }
String line(size_t up_to_index) const;
- // only makes sense inside a char_input callback or on_* callback
+ // Only makes sense inside a character_input callback or on_* callback.
void set_prompt(const String& prompt)
{
if (m_cached_prompt_valid)
@@ -291,7 +291,7 @@ private:
size_t m_prompt_lines_at_suggestion_initiation { 0 };
bool m_cached_prompt_valid { false };
- // exact position before our prompt in the terminal
+ // Exact position before our prompt in the terminal.
size_t m_origin_x { 0 };
size_t m_origin_y { 0 };
@@ -311,7 +311,7 @@ private:
HashMap<char, NonnullOwnPtr<KeyCallback>> m_key_callbacks;
- // TODO: handle signals internally
+ // TODO: handle signals internally.
struct termios m_termios, m_default_termios;
bool m_was_interrupted { false };
bool m_was_resized { false };
diff --git a/Libraries/LibLine/Style.h b/Libraries/LibLine/Style.h
index bd0c06c3df..7bf7f46b7c 100644
--- a/Libraries/LibLine/Style.h
+++ b/Libraries/LibLine/Style.h
@@ -124,7 +124,7 @@ public:
static constexpr ItalicTag Italic {};
static constexpr AnchoredTag Anchored {};
- // prepare for the horror of templates
+ // Prepare for the horror of templates.
template<typename T, typename... Rest>
Style(const T& style_arg, Rest... rest)
: Style(rest...)
diff --git a/Libraries/LibLine/SuggestionManager.cpp b/Libraries/LibLine/SuggestionManager.cpp
index 88a8cdcde4..11c92899ff 100644
--- a/Libraries/LibLine/SuggestionManager.cpp
+++ b/Libraries/LibLine/SuggestionManager.cpp
@@ -148,15 +148,15 @@ SuggestionManager::CompletionAttemptResult SuggestionManager::attempt_completion
set_current_suggestion_initiation_index(initiation_start_index);
if (mode == CompletePrefix) {
- // only auto-complete *if possible*
+ // Only auto-complete *if possible*.
if (can_complete) {
result.insert.append(suggestion.text_view.substring_view(m_next_suggestion_invariant_offset, m_largest_common_suggestion_prefix_length - m_next_suggestion_invariant_offset));
m_last_shown_suggestion_display_length = m_largest_common_suggestion_prefix_length;
- // do not increment the suggestion index, as the first tab should only be a *peek*
+ // Do not increment the suggestion index, as the first tab should only be a *peek*.
if (m_suggestions.size() == 1) {
- // if there's one suggestion, commit and forget
+ // If there's one suggestion, commit and forget.
result.new_completion_mode = DontComplete;
- // add in the trivia of the last selected suggestion
+ // Add in the trivia of the last selected suggestion.
result.insert.append(suggestion.trivia_view);
m_last_shown_suggestion_display_length = 0;
result.style_to_apply = suggestion.style;
@@ -171,7 +171,7 @@ SuggestionManager::CompletionAttemptResult SuggestionManager::attempt_completion
m_last_shown_suggestion = String::empty();
} else {
result.insert.append(suggestion.text_view.substring_view(m_next_suggestion_invariant_offset, suggestion.text_view.length() - m_next_suggestion_invariant_offset));
- // add in the trivia of the last selected suggestion
+ // Add in the trivia of the last selected suggestion.
result.insert.append(suggestion.trivia_view);
m_last_shown_suggestion_display_length += suggestion.trivia_view.length();
}
diff --git a/Libraries/LibLine/SuggestionManager.h b/Libraries/LibLine/SuggestionManager.h
index cdc201d90b..913d409b96 100644
--- a/Libraries/LibLine/SuggestionManager.h
+++ b/Libraries/LibLine/SuggestionManager.h
@@ -35,7 +35,7 @@
namespace Line {
// FIXME: These objects are pretty heavy since they store two copies of text
-// somehow get rid of one
+// somehow get rid of one.
struct CompletionSuggestion {
private:
struct ForSearchTag {
@@ -44,7 +44,7 @@ private:
public:
static constexpr ForSearchTag ForSearch {};
- // intentionally not explicit (allows suggesting bare strings)
+ // Intentionally not explicit. (To allow suggesting bare strings)
CompletionSuggestion(const String& completion)
: CompletionSuggestion(completion, "", {})
{
diff --git a/Libraries/LibLine/XtermSuggestionDisplay.cpp b/Libraries/LibLine/XtermSuggestionDisplay.cpp
index b4e8527b09..d482e287ee 100644
--- a/Libraries/LibLine/XtermSuggestionDisplay.cpp
+++ b/Libraries/LibLine/XtermSuggestionDisplay.cpp
@@ -55,8 +55,8 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
auto max_line_count = (m_prompt_length + longest_suggestion_length + m_num_columns - 1) / m_num_columns;
if (longest_suggestion_length >= m_num_columns - 2) {
spans_entire_line = true;
- // we should make enough space for the biggest entry in
- // the suggestion list to fit in the prompt line
+ // We should make enough space for the biggest entry in
+ // the suggestion list to fit in the prompt line.
auto start = max_line_count - m_prompt_lines_at_suggestion_initiation;
for (size_t i = start; i < max_line_count; ++i) {
putchar('\n');
@@ -70,7 +70,7 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
if (m_pages.is_empty()) {
size_t num_printed = 0;
size_t lines_used = 1;
- // cache the pages
+ // Cache the pages.
manager.set_start_index(0);
size_t page_start = 0;
manager.for_each_suggestion([&](auto& suggestion, auto index) {
@@ -95,7 +95,7 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
return IterationDecision::Continue;
});
- // last page
+ // Append the last page.
m_pages.append({ page_start, manager.count() });
}
@@ -113,12 +113,12 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
num_printed = 0;
}
- // show just enough suggestions to fill up the screen
- // without moving the prompt out of view
+ // Show just enough suggestions to fill up the screen
+ // without moving the prompt out of view.
if (lines_used + m_prompt_lines_at_suggestion_initiation >= m_num_lines)
return IterationDecision::Break;
- // only apply colour to the selection if something is *actually* added to the buffer
+ // Only apply colour to the selection if something is *actually* added to the buffer.
if (manager.is_current_suggestion_complete() && index == manager.next_index()) {
VT::apply_style({ Style::Foreground(Style::XtermColor::Blue) });
fflush(stdout);
@@ -141,7 +141,7 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
m_lines_used_for_last_suggestions = lines_used;
- // if we filled the screen, move back the origin
+ // If we filled the screen, move back the origin.
if (m_origin_x + lines_used >= m_num_lines) {
m_origin_x = m_num_lines - lines_used;
}
@@ -152,7 +152,7 @@ void XtermSuggestionDisplay::display(const SuggestionManager& manager)
auto string = String::format("%c page %d of %d %c", left_arrow, page_index + 1, m_pages.size(), right_arrow);
if (string.length() > m_num_columns - 1) {
- // this would overflow into the next line, so just don't print an indicator
+ // This would overflow into the next line, so just don't print an indicator.
return;
}