diff options
author | Kurtis Rader <krader@skepticism.us> | 2016-05-03 10:36:22 -0700 |
---|---|---|
committer | Kurtis Rader <krader@skepticism.us> | 2016-05-03 12:14:41 -0700 |
commit | 835176ef324b049d5195a0276b8d7eb1b3b85c47 (patch) | |
tree | 380982e49b60f1a0209bdbbfdf9139bdfdf949a9 /src/reader.h | |
parent | ed086fb1c88956da8046a0834aaedadeb3a7064c (diff) |
restyle reader module to match project style
Reduces lint errors from 338 to 205 (-39%). Line count from 4650 to 3654 (-21%).
Another step in resolving issue #2902.
Diffstat (limited to 'src/reader.h')
-rw-r--r-- | src/reader.h | 325 |
1 files changed, 117 insertions, 208 deletions
diff --git a/src/reader.h b/src/reader.h index 874b4711..4c5a511e 100644 --- a/src/reader.h +++ b/src/reader.h @@ -1,18 +1,13 @@ -/** \file reader.h - - Prototypes for functions for reading data from stdin and passing - to the parser. If stdin is a keyboard, it supplies a killring, - history, syntax highlighting, tab-completion and various other - features. -*/ - +// Prototypes for functions for reading data from stdin and passing to the parser. If stdin is a +// keyboard, it supplies a killring, history, syntax highlighting, tab-completion and various other +// features. #ifndef FISH_READER_H #define FISH_READER_H -#include <vector> -#include <string> -#include <stddef.h> #include <stdbool.h> +#include <stddef.h> +#include <string> +#include <vector> #include "common.h" #include "complete.h" @@ -23,299 +18,213 @@ class history_t; class env_vars_snapshot_t; class io_chain_t; -/* Helper class for storing a command line */ -class editable_line_t -{ -public: - - /** The command line */ +/// Helper class for storing a command line. +class editable_line_t { + public: + /// The command line. wcstring text; - - /** The current position of the cursor in the command line */ + /// The current position of the cursor in the command line. size_t position; - const wcstring &get_text() const - { - return text; - } + const wcstring &get_text() const { return text; } - /* Gets the length of the text */ - size_t size() const - { - return text.size(); - } + // Gets the length of the text. + size_t size() const { return text.size(); } - bool empty() const - { - return text.empty(); - } + bool empty() const { return text.empty(); } - void clear() - { + void clear() { text.clear(); position = 0; } - wchar_t at(size_t idx) - { - return text.at(idx); - } + wchar_t at(size_t idx) { return text.at(idx); } - editable_line_t() : text(), position(0) - { - } + editable_line_t() : text(), position(0) {} - /* Inserts a substring of str given by start, len at the cursor position */ + /// Inserts a substring of str given by start, len at the cursor position. void insert_string(const wcstring &str, size_t start = 0, size_t len = wcstring::npos); }; -/** - Read commands from \c fd until encountering EOF -*/ +/// Read commands from \c fd until encountering EOF. int reader_read(int fd, const io_chain_t &io); -/** - Tell the shell that it should exit after the currently running command finishes. -*/ +/// Tell the shell that it should exit after the currently running command finishes. void reader_exit(int do_exit, int force); -/** - Check that the reader is in a sane state -*/ +/// Check that the reader is in a sane state. void reader_sanity_check(); -/** - Initialize the reader -*/ +/// Initialize the reader. void reader_init(); -/** - Destroy and free resources used by the reader -*/ +/// Destroy and free resources used by the reader. void reader_destroy(); -/** Restore the term mode at startup */ +/// Restore the term mode at startup. void restore_term_mode(); -/** - Returns the filename of the file currently read -*/ +/// Returns the filename of the file currently read. const wchar_t *reader_current_filename(); -/** - Push a new filename on the stack of read files - - \param fn The fileanme to push -*/ +/// Push a new filename on the stack of read files. +/// +/// \param fn The fileanme to push void reader_push_current_filename(const wchar_t *fn); -/** - Pop the current filename from the stack of read files - */ -void reader_pop_current_filename(); -/** - Write the title to the titlebar. This function is called just - before a new application starts executing and just after it - finishes. +/// Pop the current filename from the stack of read files. +void reader_pop_current_filename(); - \param cmd Command line string passed to \c fish_title if is defined. - \param reset_cursor_position If set, issue a \r so the line driver knows where we are -*/ +/// Write the title to the titlebar. This function is called just before a new application starts +/// executing and just after it finishes. +/// +/// \param cmd Command line string passed to \c fish_title if is defined. +/// \param reset_cursor_position If set, issue a \r so the line driver knows where we are void reader_write_title(const wcstring &cmd, bool reset_cursor_position = true); -/** - Call this function to tell the reader that a repaint is needed, and - should be performed when possible. - */ +/// Call this function to tell the reader that a repaint is needed, and should be performed when +/// possible. void reader_repaint_needed(); -/** Call this function to tell the reader that some color has changed. */ +/// Call this function to tell the reader that some color has changed. void reader_react_to_color_change(); -/* Repaint immediately if needed. */ +/// Repaint immediately if needed. void reader_repaint_if_needed(); -/** - Run the specified command with the correct terminal modes, and - while taking care to perform job notification, set the title, etc. -*/ +/// Run the specified command with the correct terminal modes, and while taking care to perform job +/// notification, set the title, etc. void reader_run_command(const wcstring &buff); -/** - Get the string of character currently entered into the command - buffer, or 0 if interactive mode is uninitialized. -*/ +/// Get the string of character currently entered into the command buffer, or 0 if interactive mode +/// is uninitialized. const wchar_t *reader_get_buffer(); -/** Returns the current reader's history */ +/// Returns the current reader's history. history_t *reader_get_history(void); -/** - Set the string of characters in the command buffer, as well as the cursor position. - - \param b the new buffer value - \param p the cursor position. If \c p is larger than the length of the command line, - the cursor is placed on the last character. -*/ +/// Set the string of characters in the command buffer, as well as the cursor position. +/// +/// \param b the new buffer value +/// \param p the cursor position. If \c p is larger than the length of the command line, the cursor +/// is placed on the last character. void reader_set_buffer(const wcstring &b, size_t p); -/** - Get the current cursor position in the command line. If interactive - mode is uninitialized, return (size_t)(-1). -*/ +/// Get the current cursor position in the command line. If interactive mode is uninitialized, +/// return (size_t)(-1). size_t reader_get_cursor_pos(); - -/** - Get the current selection range in the command line. - Returns false if there is no active selection, true otherwise. -*/ +/// Get the current selection range in the command line. Returns false if there is no active +/// selection, true otherwise. bool reader_get_selection(size_t *start, size_t *len); -/** - Return the value of the interrupted flag, which is set by the sigint - handler, and clear it if it was set. -*/ +/// Return the value of the interrupted flag, which is set by the sigint handler, and clear it if it +/// was set. int reader_interrupted(); -/** - Clear the interrupted flag unconditionally without handling anything. The - flag could have been set e.g. when an interrupt arrived just as we were - ending an earlier \c reader_readline invocation but before the - \c is_interactive_read flag was cleared. -*/ +/// Clear the interrupted flag unconditionally without handling anything. The flag could have been +/// set e.g. when an interrupt arrived just as we were ending an earlier \c reader_readline +/// invocation but before the \c is_interactive_read flag was cleared. void reader_reset_interrupted(); -/** - Return the value of the interrupted flag, which is set by the sigint - handler, and clear it if it was set. If the current reader is interruptible, - call \c reader_exit(). -*/ +/// Return the value of the interrupted flag, which is set by the sigint handler, and clear it if it +/// was set. If the current reader is interruptible, call \c reader_exit(). int reader_reading_interrupted(); -/** - Returns true if the current reader generation count does not equal the - generation count the current thread was started with. - Note 1: currently only valid for autocompletion threads! Other threads don't - set the threadlocal generation count when they start up. -*/ +/// Returns true if the current reader generation count does not equal the generation count the +/// current thread was started with. Note 1: currently only valid for autocompletion threads! Other +/// threads don't set the threadlocal generation count when they start up. bool reader_thread_job_is_stale(); -/** - Read one line of input. Before calling this function, reader_push() must have - been called in order to set up a valid reader environment. If nchars > 0, - return after reading that many characters even if a full line has not yet - been read. Note: the returned value may be longer than nchars if a single - keypress resulted in multiple characters being inserted into the commandline. -*/ +/// Read one line of input. Before calling this function, reader_push() must have been called in +/// order to set up a valid reader environment. If nchars > 0, return after reading that many +/// characters even if a full line has not yet been read. Note: the returned value may be longer +/// than nchars if a single keypress resulted in multiple characters being inserted into the +/// commandline. const wchar_t *reader_readline(int nchars); -/** - Push a new reader environment. -*/ +/// Push a new reader environment. void reader_push(const wchar_t *name); -/** - Return to previous reader environment -*/ +/// Return to previous reader environment. void reader_pop(); -/** - Specify function to use for finding possible tab completions. The function must take these arguments: - - - The command to be completed as a null terminated array of wchar_t - - An array_list_t in which completions will be inserted. -*/ -typedef void (*complete_function_t)(const wcstring &, std::vector<completion_t> *, completion_request_flags_t, const env_vars_snapshot_t &); +/// Specify function to use for finding possible tab completions. The function must take these +/// arguments: +/// +/// - The command to be completed as a null terminated array of wchar_t +/// - An array_list_t in which completions will be inserted. +typedef void (*complete_function_t)(const wcstring &, std::vector<completion_t> *, + completion_request_flags_t, const env_vars_snapshot_t &); void reader_set_complete_function(complete_function_t); -/** - The type of a highlight function. - */ -typedef void (*highlight_function_t)(const wcstring &, std::vector<highlight_spec_t> &, size_t, wcstring_list_t *, const env_vars_snapshot_t &vars); +/// The type of a highlight function. +typedef void (*highlight_function_t)(const wcstring &, std::vector<highlight_spec_t> &, size_t, + wcstring_list_t *, const env_vars_snapshot_t &vars); -/** - Specify function for syntax highlighting. The function must take these arguments: - - - The command to be highlighted as a null terminated array of wchar_t - - The color code of each character as an array of ints - - The cursor position - - An array_list_t used for storing error messages - */ +/// Specify function for syntax highlighting. The function must take these arguments: +/// +/// - The command to be highlighted as a null terminated array of wchar_t +/// - The color code of each character as an array of ints +/// - The cursor position +/// - An array_list_t used for storing error messages void reader_set_highlight_function(highlight_function_t); -/** - Specify function for testing if the command buffer contains syntax - errors that must be corrected before returning. -*/ +/// Specify function for testing if the command buffer contains syntax errors that must be corrected +/// before returning. void reader_set_test_function(parser_test_error_bits_t (*f)(const wchar_t *)); -/** - Specify string of shell commands to be run in order to generate the - prompt. -*/ +/// Specify string of shell commands to be run in order to generate the prompt. void reader_set_left_prompt(const wcstring &prompt); -/** - Specify string of shell commands to be run in order to generate the - right prompt. -*/ +/// Specify string of shell commands to be run in order to generate the right prompt. void reader_set_right_prompt(const wcstring &prompt); - -/** Sets whether autosuggesting is allowed. */ +/// Sets whether autosuggesting is allowed. void reader_set_allow_autosuggesting(bool flag); -/** Sets whether abbreviation expansion is performed. */ +/// Sets whether abbreviation expansion is performed. void reader_set_expand_abbreviations(bool flag); - -/** Sets whether the reader should exit on ^C. */ +/// Sets whether the reader should exit on ^C. void reader_set_exit_on_interrupt(bool flag); -/** - Returns true if the shell is exiting, 0 otherwise. -*/ +/// Returns true if the shell is exiting, 0 otherwise. bool shell_is_exiting(); -/** - The readers interrupt signal handler. Cancels all currently running blocks. -*/ +/// The readers interrupt signal handler. Cancels all currently running blocks. void reader_handle_int(int signal); -/** - This function returns true if fish is exiting by force, i.e. because stdin died -*/ +/// This function returns true if fish is exiting by force, i.e. because stdin died. int reader_exit_forced(); -/** - Test if the given shell command contains errors. Uses parser_test - for testing. Suitable for reader_set_test_function(). -*/ +/// Test if the given shell command contains errors. Uses parser_test for testing. Suitable for +/// reader_set_test_function(). parser_test_error_bits_t reader_shell_test(const wchar_t *b); -/** - Test whether the interactive reader is in search mode. - - \return 0 if not in search mode, 1 if in search mode and -1 if not in interactive mode - */ +/// Test whether the interactive reader is in search mode. +/// +/// \return 0 if not in search mode, 1 if in search mode and -1 if not in interactive mode int reader_search_mode(); -/** - Test whether the interactive reader has visible pager contents. - - \return 0 if it has pager contents, 1 if it does not have pager contents, and -1 if not in interactive mode - */ +/// Test whether the interactive reader has visible pager contents. +/// +/// \return 0 if it has pager contents, 1 if it does not have pager contents, and -1 if not in +/// interactive mode int reader_has_pager_contents(); +/// Given a command line and an autosuggestion, return the string that gets shown to the user. +/// Exposed for testing purposes only. +wcstring combine_command_and_autosuggestion(const wcstring &cmdline, + const wcstring &autosuggestion); -/* Given a command line and an autosuggestion, return the string that gets shown to the user. Exposed for testing purposes only. */ -wcstring combine_command_and_autosuggestion(const wcstring &cmdline, const wcstring &autosuggestion); - -/* Expand abbreviations at the given cursor position. Exposed for testing purposes only. */ -bool reader_expand_abbreviation_in_command(const wcstring &cmdline, size_t cursor_pos, wcstring *output); +/// Expand abbreviations at the given cursor position. Exposed for testing purposes only. +bool reader_expand_abbreviation_in_command(const wcstring &cmdline, size_t cursor_pos, + wcstring *output); -/* Apply a completion string. Exposed for testing only. */ -wcstring completion_apply_to_command_line(const wcstring &val_str, complete_flags_t flags, const wcstring &command_line, size_t *inout_cursor_pos, bool append_only); +/// Apply a completion string. Exposed for testing only. +wcstring completion_apply_to_command_line(const wcstring &val_str, complete_flags_t flags, + const wcstring &command_line, size_t *inout_cursor_pos, + bool append_only); #endif |