A list of desired features -------------------------- Vague musings: - FriBidi support? - Make matching bracket searches sophisticated enough to skip over brackets inside comments? - Allow indentation of marked text by spaces as well as tabs? - Allow indentation to add just enough columns to reach the nearest multiple of tabsize, rather than always adding tabsize columns? - Allow conversion between different character sets. Maybe use glib's iconv() if the system's iconv() is inadequate, since we already use glib's vsnprintf() if the system lacks vsnprintf()? - Allow setting marks (saved positions, not to be confused with the mark set via Ctrl-^) at various lines and/or columns in the buffer, and allow movement between them with a single keystroke? - Allow searching for and replacing newlines? See also https://savannah.gnu.org/bugs/?47053. - New regression framework built on expect? - Add the ability to move to different lines of the screen with a single keystroke, e.g. M-` (M-~) to go to the top line, M-& (M-7) to go to the center line, and M-' (M-") to go to the last line? Somewhat urgent: - Allow text searches in the help viewer. See https://savannah.gnu.org/bugs/?28994. - Detect when text is being pasted, so that we can handle it faster. See https://savannah.gnu.org/bugs/?40060. - Allow color syntaxes to apply to more than just color, so that we can e.g. specify a different alternate spell checker depending on which file type we have open. - Allow piping marked text to an external command and replacing it with the command's output -- that is: generalize the spell-check flow. See also https://savannah.gnu.org/bugs/?28993. For version 2.4: - Handle window resizes better. After we've resized, we should stay wherever we were before we resized, as Pico does. [DONE] - Allow even better file-type detection than we have currently, e.g. through libmagic. [DONE] - Compatibility with vim status files to let other editors know we're in a file. [DONE] For version 2.2: - Rebindable keys? [DONE] - Undo/Redo keys (M-U and M-E)? [DONE] - Fix problems with color syntaxes highlighting lines too aggressively. [DONE] - Allow nano to work like a pager (reading from stdin). [DONE] - Allow color syntaxes to be selected based on more than just filename extension. [DONE] - Allow soft wrapping as well as hard wrapping? [DONE] For version 2.0: - UTF-8 support. [DONE] - Support for paragraph searches. [DONE] - Support for justifying the entire file at once. [DONE] - Support for filename searches in the file browser. [DONE] - Keystroke to implement "Add next sequence as raw" like vi's ^V. [DONE] - Spell check selected text only. [DONE] - Make "To Line" (^W^T) and "Read from Command" (^R^X) reenter their parent menu when their keystroke is entered a second time (^W^T^T and (^R^X^X) (requires figuring out when to keep cursor position and when not to). [DONE] - Fix resetstatuspos global which we shouldn't have. [DONE] For version 1.2: - Single-line scroll up/down? [DONE] - Color syntax highlighting? (Certainly seems like there's a demand for it.) [DONE] - .nanorc [DONE] - Backup making (filename~)? [DONE] - Search/replace string history. [DONE] - Implement Pico's -j and -g flags, as they are pretty easy to do. [DONE] - Make mouse support work with clicking on the shortcuts (-m). [DONE] - Implement -o (chroot of sorts). [DONE] - Allow -r to take a negative argument, meaning right margin instead of left (allows resizing that way), formerly -W arg. [DONE] For version 1.0: - Implement Spelling. [DONE] - Implement Help. [DONE] - Internationalization [In progress, translators welcome!] - Allow nano to be resized in X. [DONE] - On PageUp/Down, put the cursor on the first line (like Pico), not the center line. [DONE] - Rewrite edit_refresh, if at all possible. [DONE] - Implement justify function. [DONE] - Cut to end of line. [DONE] - Built-in speller command. [DONE] - Better statusbar interaction (scrolling, tab completion). [DONE] - Unjustify command (^U after ^J). [DONE] - Username completion (~user). [DONE]