Feature Wishlist
From Niki
Feel free to add stuff (in any category; others may move it later), but if the idea has not been discussed in the MailingLists yet, it is a good idea to post it there too, so developers notice it. This page is more of an archive.
Also, if you plan to work on one of these items (especially the larger ones), ask in the MailingLists whether someone is already working on them.
Contents |
GUI
- Drag-drop integration with Gnome and KDE.
- Clonable document windows (such as those in the Max Vohlken version): this is much more useful than tabs, allowing side-by-side eyeball comparison of different places of the same document. It could be extended to allow different language modes in different windows for the same document. -- TonyBalinski
- Use anti-aliased fonts if available
- Arrow down in search dialogs should clear search field (makes auto-fill from selection more useful)
- Break up prefs file into modules
- Allow more stuff in the gutter, like mark labels.
- The status bar should show the length of the primary selection if there is one.
- The FSB (file selection box) should get a bunch of new features
- 'chmod' and/or 'chmod u+x' widget
- Widget to show/hide hidden files
- Widget to show/hide ClearCase versions
- Open multiple files at once
- mkdir widget
- Favorites dir/file widgets
- Make stats line configurable, possibly using a
printf()-like string.
- The result of a search should be flashed in a different color before taking the color of the primary selection.
- Matching delimiters should be highlighted with configurable time limit.
- The icon title should be configurable.
- Short menu option - This could be either:
- something similar to the SGI_CUSTOM option, which hides the more elusive stuff from the menus or
- full macro access to the menus items, with something like above as a standard macro or
- full macro access with something like Microsoft's intelligent menues as a standard macro.
- Save As should keep file name as directory is changed
- In "Replace Uses Selection" mode, multi-line selections should not be used
- If NEdit's text widget would be used in certain dialogs, they could be enhanced significantly.
- Perl's m/regex/x mode, ignoring whitespace in regexes would be a real help with the larger syntax highlighting patterns.
- New Preferences widgets, probably a dialog. This should be part of a new Settings System.
- Hair line to show wrap column (patch exists in tracker)
- Visible spaces, tabs, newlines. Suggested representations: "·" (\0267), "» " (\0273 + spaces), and "¬" (\0254) or "¶" (\0266) respectively.
- The dialog made by
list_dialog()should adjust its height depending on list length. (It already does adjust width.
-- It already is, it's just that the maximum length at creation is 10. In my own sources I have upped this to 25, a bit more reasonable. -- TonyBalinski
- Vertical split, to facilitate the comparison of columns in datafiles with many columns. E.g. when the first column is "time" and the 30-th column is the price of a particular item or the amount of sunshine.
- Add a possibility to synchronize the horizontal scrolling when you did a horizontal split. This would be helpful if you have rather large tables (e.g. 100 cols/500 rows) to compare/assign values with the header of such a table.
Scripting
- Customizable menus: The File-, Edit-, and Search-menu should be customizable just like the Shell-, Macro-, and Window-background-menu. Each of these menus should start with a "Customize"-entry field (i.e., move Preferences -> Default Settings -> Customize Menus to the Shell-, Macro-, and Window-background-menu). In this way users could do so much more than to add only a "Save all"-entry to the File-menu!
- Garbage collection: Make garbage collection possible, while macros are running.
- PERSISTENT SHELL CONNECTIONS FROM MACROS
- Unified key binding system to allow dynamic key binding to shell, macro, background commands / functions (see also next bullet).
- Macro functions should not require a menu entry to get a key binding.
- A perl-like list context for the macro language.
- Hooks: A single one, language_mode_hook, is present under a different name.
- There was some talk about a new syntax for arrays: 'array.element'. Add a way to put functions in arrays and you have free namespaces and a lot of other neat things.
- Add array literals, which allow initialization of an array variable with dedicated values. Syntax proposal: "{ .key1 = value1, .key2 = value2, ..}". This feature would allow a simple interface for macro subroutines with lots of optional parameters.
- get_position(line, column): convert line+column to buffer position.
- A similar feature is implemented by SF patch 818864. This patch provides 3 new macro subroutines:
- to_pos(line, column) -> returns buffer position.
- to_column(pos) -> converts buffer position to column.
- to_line(pos) -> converts buffer position to line.
- In the meantime, the macro LineColToPos can be used.
- A similar feature is implemented by SF patch 818864. This patch provides 3 new macro subroutines:
- Add a function
get_file_by_dialog()which opens the file selection box, lets the user choose a file and returns the chosen file name.- This is realized by SF patch 852268. This patch provides a new macro function called
filename_dialog(), which behaves as requested. - Notice that it is not necessary to introduce macro functions with *new names* only to have return values in a macro. Instead (to avoid that mess) functions with the *same* name as the action routines should be added that act just like their corresponding action routines and return the desired values. (The problem is that action routines, while invokable, often aren't of much use inside a macro, because they can't return values needed later on. That's what is behind such requests). So, just rename
get_file_by_dialog()orfilename_dialog()or whatever simply toopen_dialog()and return the chosen file name (perhaps letopen_dialog()take a parameter telling it not to open the file). Andopen()should return also the full file name, so that you can say focus_window(open(file))! Moreover,find_dialog()andreplace_dialog()should return an array containing the search string, type, direction, i.e., the data that is stored in the search history already. Then you could use the find_dialog in a "find_all_and_backlight" macro instead of a string_dialog (to have the search string and type). But there are also more special purposes! As just another example,goto_matching()should be aware of "nobell" and return the position of the match if any.
- This is realized by SF patch 852268. This patch provides a new macro function called
- Complete the macro interface for calltips.
- Add the following action routines: (there are
load_tips_file(),load_tips_file_dialog(),unload_tips_file()already, or am I missing anything?)-
load_calltips_file() -
load_calltips_file_dialog() -
unload_calltips_file()
-
- Add a global variable $calltips_files containing the names of all currently loaded calltips files. These features would allow macros hooked up to the smart indent macro initialization to handle calltips files automatically.
- Add the following action routines: (there are
- Add a rangeset mode "remove": remove range from rangeset as soon as a change occurs. In some cases it is not desirable to maintain a range if the text within this range was changed. This could also be used to track changes in the text buffer.
- Add a "Save all" - entry to the File menu.
Printing
- Add color printing support
- Add pretty-printing, with page header (current filename/date/editors-name) and syntax highlighting in the print
Other
- Restore previous state, for instance from a logout or reboot or if killed. This includes re-opening all windows, tabs and opened files. This also includes integration with things like "Save Current Setup" in GNOME, so that a base working state of Nedit windows can be reopened when logging in. Preferably windows would be opened in the identical position and workspace, and retain properties like "Always on Visible Workspace".
- Jump back option, after using a ctrl-d, a simple key combination should be available to jump back to the original location (and/or file). Ctrl-d saves a lot of scrolling time, but there is no easy way to return from where I came. (this is one neat feature other editors like vim do have)
- A pure server option would allow to keep the server in the background even if no windows were open.
- Make backup file extension configurable. SF patch #521218 is almost there, but some details are still missing:
- Prepend something to backup file names. This could be a dot or a backup directory.
- Set maximum backup level with wrap around. (Or even renaming the whole bunch, but this could be slow.)
- Use stdin to read from, so that NEdit can be part of a tool chain. Also provide an option to 'save' to stdout, to avoid reading the result from a file, so that NEdit may let the tool chain continue. (This would have been particularly useful in a _password wallet_ script, which stores passwords in an encrypted file, and uses NEdit to add some new passwords before encrypting the file back. During the edition, the uncrypted file may be read by others, this is a security issue for this script).
- Projects, ie. group of files opened together, possibly with a specific language mode.
- One file should be opened in multiple windows on multiple machines, allowing multiple users to work on the same file.
- If NEdit offers to reload a file changed on disk it should mark the buffer as unsaved; if the changed file is opened with nc, it should open.
- More configurable auto indent
- Folding
- Allow setting "/bin/(t)csh -f" as the value of the "nedit*shell" X-resource
Controversial:
These are features which at least some developers are against including. Feel free to write a patch anyway if these things are important to you, and share it with those interested (that's what open source is about), but do not be surprised if the answer is 'no thanks' to include your generous offer in the main distribution. The developers would of course appreciate it if you considered spending your efforts on some of the wishes above instead, which would reach more users.
- Toolbar (patch exists)
- Nimble: Runtime downloading of new highlight patterns. Inspirations are CPAN, jEdit's Plugin Manager and Apt. Nimble will be supported by a full GUI from NEdit itself. All the user would have to do would be to enter a keyword, select one or more macros from the resulting list and press 'Install'. Nimble would resolve dependencies, download the required files and install them.
- FTP-Integration into the open/save dialogs (and possibly macros) would allow to open and save files directly through the network.
