about summary refs log tree commit diff stats
path: root/doc
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2011-01-04 01:51:25 +0100
committerhut <hut@lavabit.com>2011-01-04 01:51:25 +0100
commitd176ad91fb02fb5bdc50fe85ee8b90105ba5ff90 (patch)
treea1efb8a1621976555e465dcb50ae9323b80956c1 /doc
parent2719decc9a05162516fd91a40a7b5f77e5eb1be0 (diff)
downloadranger-d176ad91fb02fb5bdc50fe85ee8b90105ba5ff90.tar.gz
Moved HACKING and TODO to doc/
Diffstat (limited to 'doc')
-rw-r--r--doc/HACKING95
-rw-r--r--doc/TODO119
2 files changed, 214 insertions, 0 deletions
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 <self> 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
+