From d176ad91fb02fb5bdc50fe85ee8b90105ba5ff90 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 4 Jan 2011 01:51:25 +0100 Subject: Moved HACKING and TODO to doc/ --- doc/HACKING | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ doc/TODO | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 214 insertions(+) create mode 100644 doc/HACKING create mode 100644 doc/TODO (limited to 'doc') diff --git a/doc/HACKING b/doc/HACKING new file mode 100644 index 00000000..dd384758 --- /dev/null +++ b/doc/HACKING @@ -0,0 +1,95 @@ +Guidelines on Code Modification +=============================== + +Coding Style +------------ + +* Use syntax compatible to both python 2.6 and 3.1. +* Use docstrings with pydoc in mind +* Follow the style guide for python code: + http://www.python.org/dev/peps/pep-0008/ +* Although this guide suggests otherwise, tabs are used for indentation + of code and docstrings. In other documents (readme, etc), use spaces. +* Test the code with unit tests where it makes sense + + +Patches +------- + +Send patches, created with "git format-patch", to the email adress + + romanz@lavabit.com + +If you plan to do major changes, or many changes over time, I encourage +you to create a fork on GitHub, Gitorious or any other site. + + +Starting Points +--------------- + +Good places to read about ranger internals are: +ranger/core/actions.py +ranger/core/environment.py +ranger/fsobject/fsobject.py + +About the UI: +ranger/gui/widgets/browsercolumn.py +ranger/gui/widgets/browserview.py +ranger/gui/defaultui.py + + +Common Changes +-------------- + +* Change which files are previewed in the auto preview: +In ranger/gui/widget/browsercolumn.py +the constant PREVIEW_BLACKLIST + +* Adding options: +In ranger/defaults/options.py +add the default value, like: my_option = True +In ranger/shared/settings.py +add the name of your option to the constant ALLOWED_SETTINGS + +The setting is now accessible at self.settings.my_option, +assuming is a "SettingsAware" object. + +* Changing commands, adding aliases: +ranger/defaults/commands.py +or ~/.config/ranger/commands.py + +* Adding colorschemes: +Copy ranger/colorschemes/default.py to ranger/colorschemes/myscheme.py +and modify it according to your needs. Alternatively, mimic the jungle +colorscheme. It subclasses the default scheme and just modifies a few things. +In ranger/defaults/options.py (or ~/.config/ranger/options.py), change + colorscheme = 'default' +to: colorscheme = 'myscheme' + +* Change which files are considered to be "hidden": +In ranger/defaults/options.py +change the hidden_filter regular expression. + +* Change the key map: +Modify ranger/defaults/keys.py. This should be self-explanatory. +Check out ranger/core/actions.py for the most common actions, of course +you can also use your own functions. + +* Change the file type => application associations: +In ranger/defaults/apps.py +modify the method app_default. +The variable "f" is a filesystem-object with attributes like mimetype, +extension, etc. For a full list, check ranger/fsobject/fsobject.py + +* Change the file extension => mime type associations: +Modify ranger/data/mime.types + + +Version Numbering +----------------- + +X.Y.Z, where: + +* X: Major version, milestone +* Y: Minor version, even number => stable version +* Z: Revision, may be omitted if zero diff --git a/doc/TODO b/doc/TODO new file mode 100644 index 00000000..1577f97a --- /dev/null +++ b/doc/TODO @@ -0,0 +1,119 @@ +Console + + (X) #0 09/12/06 console commands + (X) #1 09/12/06 quick find + (X) #2 09/12/06 open with + (X) #4 09/12/06 history for console + (X) #13 09/12/27 display docstring of a command + + +General + + (X) #5 09/12/06 move code from fm into objects + (X) #6 09/12/06 move main to __init__ + (X) #7 09/12/06 cooler titlebar + (X) #8 09/12/17 Add operations to modify files/directories + (X) #9 09/12/24 add a widget for managing running operations + (X) #10 09/12/24 sorting + (X) #11 09/12/27 filter + (X) #12 09/12/27 jump through the list in a specific order + (X) #14 09/12/29 make filelists inherit from pagers + (X) #15 09/12/29 better way of running processes!!~ + (X) #16 10/01/01 list of bookmarks + (X) #21 10/01/01 write help! + (X) #22 10/01/03 add getopt options to change flags/mode + (X) #29 10/01/06 add chmod command + (X) #30 10/01/06 add a way to create symlinks + (X) #32 10/01/08 place the (hidden) cursor to a meaningful position + (X) #34 10/01/09 display free disk space + (X) #35 10/01/09 display disk usage of files in current directory + ( ) #36 10/01/11 help coloring is terribly inefficient + (X) #37 10/01/13 better tab completion for OpenConsole + ( ) #38 10/01/16 searching in pager + (X) #39 10/01/17 flushinput not always good + (X) #42 10/01/17 memorize directory for `` when using :cd + (X) #43 10/01/18 internally treat the bookmarks ` and ' the same + ( ) #44 10/01/18 more error messages :P + (X) #47 10/01/19 less restricive auto preview + (X) #48 10/01/19 abbreviate commands with first unambiguous substring + ( ) #50 10/01/19 add more unit tests + ( ) #51 10/01/21 remove directory.marked_items ? + (X) #55 10/01/24 allow change of filename when pasting + you're given the choice between overwriting or appending a "_" + ( ) #56 10/01/30 warn before deleting mount points + ( ) #57 10/01/30 warn before deleting unseen marked files + (X) #58 10/02/04 change the title of the terminal + (X) #61 10/02/09 show sum of size of marked files + (X) #63 10/02/15 limit filesize in previews + ( ) #64 10/02/25 scroll in previews + (X) #66 10/02/28 explain how colorschemes work + (X) #70 10/03/14 mouse handler for titlebar + (X) #71 10/03/21 previews: black/whitelist + read file + (X) #79 10/04/08 tab number zero + ( ) #80 10/04/08 when closing tabs, avoid gaps? + (X) #81 10/04/15 system crash when previewing /proc/kcore with root permissions + (X) #83 10/04/19 better ways to mark files. eg by regexp, filetype,.. + ( ) #86 10/04/21 narg for move_parent + ( ) #60 10/02/05 utf support improvable + ( ) #91 10/05/12 in keys.py, fm.move(right=N) should run with mode=N + ( ) #92 10/05/14 allow to enter the realpath of a directory + ( ) #93 10/05/15 pause after running program + + +Bugs + + (X) #17 10/01/01 why do bookmarks disappear sometimes? + (X) #18 10/01/01 fix notify widget (by adding a LogView?) + (X) #19 10/01/01 resizing after pressing g + (X) #23 10/01/04 stop dir loading with ^C -> wont load anymore + (X) #25 10/01/06 directories sometimes dont reload correctly + (X) #26 10/01/06 :delete on symlinks of directories fails + (X) #31 10/01/06 ^C breaks cd-after-exit by stopping sourced shell script + (X) #40 10/01/17 freeze with unavailable sshfs + Not rangers fault (?) + (X) #41 10/01/17 capital file extensions are not recognized + (X) #46 10/01/19 old username displayed after using su + (X) #49 10/01/19 fix unit tests :'( + (X) #52 10/01/23 special characters in tab completion + (X) #54 10/01/23 max_dirsize_for_autopreview not working + (X) #62 10/02/15 curs_set can raise an exception + (X) #65 10/02/16 "source ranger ranger some/file.txt" shouldn't cd after exit + (X) #67 10/03/08 terminal title in tty + (X) #69 10/03/11 tab-completion breaks with Apps subclass + (X) #73 10/03/21 when clicking on the first column, it goes 1x down + (X) #74 10/03/21 console doesn't scroll + (X) #78 10/03/31 broken preview when deleting all files in a directory + (X) #85 10/04/26 no automatic reload of directory after using :filter + (X) #87 10/05/10 files are not properly closed after previewing + ( ) #88 10/05/10 race conditions for data loading from FS + (X) #90 10/05/11 no link target for broken links + ( ) #94 10/05/26 "pressed keys" text cut off when chaining ctrl-XYZ keys + + +Ideas + + ( ) #20 10/01/01 use inotify to monitor filesystem changes + ( ) #24 10/01/06 progress bar + (X) #27 10/01/06 hide bookmarks in list which contain hidden dir + (X) #28 10/01/06 use regexp instead of string for searching + (X) #33 10/01/08 accelerate mousewheel speed + won't do this + (X) #45 10/01/18 hooks for events like setting changes + (X) #53 10/01/23 merge fm and environment + won't do this + (X) #68 10/03/10 threads, to seperate ui and loading + won't do this + ( ) #72 10/03/21 ranger daemon which does the slow io tasks + ( ) #75 10/03/28 navigate in history + (X) #76 10/03/28 save history between sessions + (X) #77 10/03/28 colorscheme overlay in options.py + ( ) #82 10/04/19 :s command for batch renaming + ( ) #84 10/04/25 use pygments for syntax highlighting + ( ) #89 10/05/10 branch view + + +Blocking + + ( ) #60 10/02/05 utf support improvable + (X) #81 10/04/15 system crash when previewing /proc/kcore with root permissions + -- cgit 1.4.1-2-gfad0