summary refs log blame commit diff stats
path: root/TODO
blob: 1e02251ce03e47a6cb886778bfdb0802b5f1a1e1 (plain) (tree)
aea67778 ^pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
;;; init-project.el --- Project (and Perspective) Configuration File -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:

(use-package project
  :ensure nil
  :config
  (defun project-recentf ()
    "Show a list of recently visited files in a project."
    (interactive)
    (if (boundp 'recentf-list)
        (let* ((project-root (expand-file-name (project-root (project-current))))
               (project-recentf-files (mapcar
                                       (lambda (f) (file-relative-name f project-root))
                                       (seq-filter (apply-partially 'string-prefix-p project-root) recentf-list))))
          (find-file (expand-file-name
                      (funcall project-read-file-name-function
                               "Find recent project files"
                               project-recentf-files nil 'file-name-history nil)
                      project-root)))
      (message "recentf is not enabled")))

  (add-to-list 'project-switch-commands '(?h "Recentf" project-recentf) t)
  (add-to-list 'project-switch-commands '(?b "Consult Project Buffer" consult-project-buffer) t)
  (add-to-list 'project-switch-commands '(?r "Consult Ripgrep" consult-ripgrep) t)
  (add-to-list 'project-switch-commands '(?m "Magit" magit-status) t)
  (add-to-list 'project-switch-commands '(?R "Replace Regexp" project-query-replace-regexp) t)

  ;; project-root and project-try-local copied/modified from https://github.com/karthink/project-x/blob/master/project-x.el
  (cl-defmethod project-root ((project (head local)))
    "Return root directory of current PROJECT."
    (cdr project))
  (defun project-try-local (dir)
    "Treat DIR as a project if it contains a .project file."
    (if-let ((root (locate-dominating-file dir ".project")))
        (cons 'local root)))
  ;; Add this hook last so so that vc takes precedence over local
  (add-hook 'project-find-functions 'project-try-local 90)
  :bind
  ("C-x p P" . project-switch-project)
  ("C-x f" . project-recentf))

(use-package perspective
  :config (persp-mode)
  (defun switch-project (proj)
    "Switch to project or already open project perspective."
    (interactive (list (project-prompt-project-dir)))
    (let* ((persp-name (file-name-nondirectory (directory-file-name proj)))
           (persp (gethash persp-name (perspectives-hash))))
      (unless (equal persp (persp-curr))
        ;; Create or switch to a perspective named after the project
        (persp-switch persp-name)
        ;; If the perspective did not exist, switch to the project
        (when (not persp)
          (project-switch-project proj)))))
  :bind
  ("C-x p p" . switch-project))

(provide 'init-project)
;;; init-project.el ends here
nger/blame/TODO?h=v1.7.0-emacs&id=876261b73081d9723b082a8f2798f76e3122e867'>^
e02d47ed ^
48a8eab5 ^
2e631f44 ^
f3bc52e5 ^
3a917b8a ^
ff86460b ^
2f3326a4 ^
e952d6cb ^
4be8b401 ^



d955e3f0 ^
75013dc7 ^
67bb838c ^
a808a661 ^
bba8d293 ^
2a64495f ^
5e449699 ^
8895b130 ^

7b04e507 ^
87db0130 ^
dd4a4145 ^
8f2f1767 ^
db1721dd ^
b624bd94 ^
83868c7a ^
6099d9a3 ^
9207e83c ^
f7db061b ^
6099d9a3 ^
f3bc52e5 ^
f01ef1a0 ^
13370392 ^
ff86460b ^
e1d0613a ^
b4f7187f ^
6f43de0a ^




fca1fc4f ^
f70ee6b2 ^
0db4c9b2 ^
338bbba4 ^

6908d0cc ^
338bbba4 ^


338bbba4 ^
c776804d ^
dab4db44 ^
cc4210ff ^
34c131ef ^
32f93303 ^
c1a9373c ^
ff86460b ^
66c5bb93 ^
338bbba4 ^





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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?
   ( ) #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
   ( ) #81  10/04/15  system crash when previewing /proc/kcore with root permissions