xiki 0.5.1a → 0.5.3a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. data/Gemfile +1 -11
  2. data/README.markdown +67 -43
  3. data/bin/xiki +2 -15
  4. data/etc/command/xiki_command.rb +115 -41
  5. data/etc/command/xiki_process.rb +3 -7
  6. data/etc/install/el4r_setup.sh +5 -0
  7. data/etc/themes/Black_BG.notes +8 -0
  8. data/etc/themes/Dark_Metal.notes +0 -6
  9. data/etc/themes/Default.notes +24 -0
  10. data/etc/themes/Fall_Fonts.notes +6 -0
  11. data/etc/themes/Light_Gray_BG_Theme.notes +6 -0
  12. data/etc/themes/Orange_Path.notes +1 -1
  13. data/etc/themes/Pastel_Fonts.notes +6 -0
  14. data/etc/themes/Path_Mode_Line.notes +36 -0
  15. data/etc/themes/Rainbow_Fonts.notes +20 -0
  16. data/etc/themes/Shiny_Blue.notes +14 -18
  17. data/etc/themes/Shiny_Green.notes +0 -6
  18. data/etc/themes/White_BG.notes +5 -0
  19. data/etc/vim/vim_status.notes +32 -0
  20. data/etc/vim/xiki.vim +16 -0
  21. data/etc/wrappers/wrapper.rb +2 -2
  22. data/etc/www/index.rb +1 -1
  23. data/etc/www/public/error.html +47 -0
  24. data/etc/www/sinatra_server.rb +353 -0
  25. data/etc/www/web_server.rb +0 -252
  26. data/lib/xiki.rb +94 -26
  27. data/lib/{block.rb → xiki/block.rb} +0 -0
  28. data/lib/{bookmarks.rb → xiki/bookmarks.rb} +11 -10
  29. data/lib/{buffers.rb → xiki/buffers.rb} +10 -10
  30. data/lib/{clipboard.rb → xiki/clipboard.rb} +2 -2
  31. data/lib/{code.rb → xiki/code.rb} +3 -7
  32. data/lib/{code_tree.rb → xiki/code_tree.rb} +3 -3
  33. data/lib/{color.rb → xiki/color.rb} +4 -14
  34. data/lib/{console.rb → xiki/console.rb} +6 -0
  35. data/lib/{control_lock.rb → xiki/control_lock.rb} +5 -1
  36. data/lib/{control_tab.rb → xiki/control_tab.rb} +3 -1
  37. data/lib/{core_ext.rb → xiki/core_ext.rb} +7 -3
  38. data/lib/{cursor.rb → xiki/cursor.rb} +4 -5
  39. data/lib/{deletes.rb → xiki/deletes.rb} +0 -0
  40. data/lib/{diff_log.rb → xiki/diff_log.rb} +4 -4
  41. data/lib/{effects.rb → xiki/effects.rb} +5 -2
  42. data/lib/{environment.rb → xiki/environment.rb} +0 -0
  43. data/lib/{file_tree.rb → xiki/file_tree.rb} +34 -24
  44. data/lib/{files.rb → xiki/files.rb} +15 -5
  45. data/lib/{hide.rb → xiki/hide.rb} +0 -0
  46. data/lib/{history.rb → xiki/history.rb} +1 -0
  47. data/lib/{image.rb → xiki/image.rb} +0 -0
  48. data/lib/{incrementer.rb → xiki/incrementer.rb} +0 -0
  49. data/lib/{insert.rb → xiki/insert.rb} +0 -0
  50. data/lib/{irc.rb → xiki/irc.rb} +0 -0
  51. data/lib/{key_bindings.rb → xiki/key_bindings.rb} +7 -4
  52. data/lib/{keys.rb → xiki/keys.rb} +32 -36
  53. data/lib/{launcher.rb → xiki/launcher.rb} +42 -23
  54. data/lib/{line.rb → xiki/line.rb} +1 -1
  55. data/lib/{links.rb → xiki/links.rb} +0 -0
  56. data/lib/{location.rb → xiki/location.rb} +0 -0
  57. data/lib/{macros.rb → xiki/macros.rb} +0 -0
  58. data/lib/{man.rb → xiki/man.rb} +0 -0
  59. data/lib/{menu.rb → xiki/menu.rb} +62 -11
  60. data/lib/{merb.rb → xiki/merb.rb} +1 -1
  61. data/lib/{message.rb → xiki/message.rb} +0 -0
  62. data/lib/{meths.rb → xiki/meths.rb} +0 -0
  63. data/lib/{mode.rb → xiki/mode.rb} +0 -0
  64. data/lib/{move.rb → xiki/move.rb} +1 -1
  65. data/lib/{notes.rb → xiki/notes.rb} +41 -37
  66. data/lib/{numbers.rb → xiki/numbers.rb} +0 -0
  67. data/lib/{ol.rb → xiki/ol.rb} +2 -3
  68. data/lib/{ol_helper.rb → xiki/ol_helper.rb} +0 -0
  69. data/lib/{overlay.rb → xiki/overlay.rb} +0 -0
  70. data/lib/{pause_means_space.rb → xiki/pause_means_space.rb} +2 -2
  71. data/lib/{php.rb → xiki/php.rb} +0 -0
  72. data/lib/{projects.rb → xiki/projects.rb} +8 -1
  73. data/lib/{relinquish_exception.rb → xiki/relinquish_exception.rb} +0 -0
  74. data/lib/{remote.rb → xiki/remote.rb} +2 -2
  75. data/lib/{requirer.rb → xiki/requirer.rb} +3 -3
  76. data/lib/{rest_tree.rb → xiki/rest_tree.rb} +0 -0
  77. data/lib/{ruby.rb → xiki/ruby.rb} +0 -0
  78. data/lib/{ruby_console.rb → xiki/ruby_console.rb} +0 -0
  79. data/lib/{search.rb → xiki/search.rb} +7 -8
  80. data/lib/{search_term.rb → xiki/search_term.rb} +0 -0
  81. data/lib/{snippet.rb → xiki/snippet.rb} +0 -0
  82. data/lib/{specs.rb → xiki/specs.rb} +0 -0
  83. data/lib/{styles.rb → xiki/styles.rb} +8 -72
  84. data/lib/{svn.rb → xiki/svn.rb} +0 -0
  85. data/lib/{text_util.rb → xiki/text_util.rb} +2 -2
  86. data/lib/{tree.rb → xiki/tree.rb} +40 -32
  87. data/lib/{tree_cursor.rb → xiki/tree_cursor.rb} +0 -0
  88. data/lib/{trouble_shooting.rb → xiki/trouble_shooting.rb} +0 -0
  89. data/lib/{url_tree.rb → xiki/url_tree.rb} +0 -0
  90. data/lib/{view.rb → xiki/view.rb} +39 -16
  91. data/lib/xiki/vim/line.rb +8 -0
  92. data/lib/xiki/vim/tree.rb +9 -0
  93. data/lib/{window.rb → xiki/window.rb} +0 -0
  94. data/menus/address_book.rb +6 -4
  95. data/menus/agenda.rb +3 -3
  96. data/menus/amazon.rb +2 -2
  97. data/menus/applescript.rb +21 -10
  98. data/menus/black.menu +1 -0
  99. data/menus/bootstrap.rb +2 -7
  100. data/menus/browser.rb +8 -5
  101. data/menus/cassandra_db.rb +2 -2
  102. data/menus/chmod.rb +1 -1
  103. data/menus/conf.rb +5 -0
  104. data/menus/cookies.rb +1 -1
  105. data/menus/css.rb +2 -2
  106. data/menus/deck.rb +1 -1
  107. data/menus/dimensions_config.menu +30 -0
  108. data/menus/dimensions_config.rb +5 -0
  109. data/menus/docs.rb +33 -34
  110. data/menus/dotsies.rb +1 -0
  111. data/menus/emacs.rb +7 -2
  112. data/menus/firefox.rb +25 -25
  113. data/menus/git.rb +1 -1
  114. data/menus/gito.rb +2 -2
  115. data/menus/headings.rb +3 -3
  116. data/menus/ip.rb +2 -4
  117. data/menus/itunes.rb +9 -2
  118. data/menus/javascript.rb +3 -1
  119. data/menus/local_storage.rb +4 -4
  120. data/menus/mac.rb +2 -1
  121. data/menus/maps.rb +2 -2
  122. data/menus/models.rb +31 -0
  123. data/menus/mongo.rb +2 -2
  124. data/menus/piano.rb +47 -23
  125. data/menus/r.rb +57 -0
  126. data/menus/rails.rb +89 -27
  127. data/menus/redmine.rb +1 -1
  128. data/menus/sass.rb +1 -1
  129. data/menus/settings.menu +2 -0
  130. data/menus/technologies.rb +4 -1
  131. data/menus/web_interface.rb +58 -0
  132. data/menus/welcome.menu +18 -0
  133. data/menus/white.menu +1 -0
  134. data/menus/youtube.rb +32 -0
  135. data/spec/code_tree_spec.rb +1 -1
  136. data/spec/diff_log_spec.rb +4 -4
  137. data/spec/file_tree_spec.rb +2 -2
  138. data/spec/line_spec.rb +2 -2
  139. data/spec/menu_spec.rb +5 -5
  140. data/spec/ol_spec.rb +3 -3
  141. data/spec/remote_spec.rb +2 -2
  142. data/spec/search_spec.rb +2 -2
  143. data/spec/text_util_spec.rb +1 -1
  144. data/spec/tree_cursor_spec.rb +3 -3
  145. data/spec/tree_spec.rb +3 -3
  146. data/xiki.gemspec +22 -6
  147. metadata +311 -76
  148. data/menus/dir.rb +0 -8
File without changes
@@ -1,5 +1,5 @@
1
- require 'location'
2
- require 'keys'
1
+ require 'xiki/location'
2
+ require 'xiki/keys'
3
3
  require 'yaml'
4
4
 
5
5
  class Bookmarks
@@ -61,9 +61,9 @@ class Bookmarks
61
61
 
62
62
  # If arg is a symbol, use it as the prefix
63
63
  prefix = ""
64
- if arg && arg.type == Symbol
64
+ if arg && arg.class == Symbol
65
65
  prefix = arg.to_s
66
- elsif arg && arg.type == String
66
+ elsif arg && arg.class == String
67
67
  self.set(arg.sub(/^\$/, ""))
68
68
  return
69
69
  end
@@ -158,9 +158,9 @@ class Bookmarks
158
158
  #el4r_lisp_eval "(require 'bookmark)(bookmark-maybe-load-default-file)"
159
159
  # If arg is a symbol, use it as the prefix
160
160
  prefix_to_bm = ""
161
- if bookmark && bookmark.type == Symbol
161
+ if bookmark && bookmark.class == Symbol
162
162
  prefix_to_bm = bookmark.to_s
163
- elsif bookmark && bookmark.type == String
163
+ elsif bookmark && bookmark.class == String
164
164
  keys = bookmark
165
165
  # return self.jump(bookmark.sub(/^\$/, ""))
166
166
  end
@@ -228,7 +228,6 @@ class Bookmarks
228
228
  end
229
229
  end
230
230
  return path if bm.nil?
231
-
232
231
  # If a slash, cut off filename if there is one (only dir is wanted)
233
232
  if options[:file_ok] # Put slash back if there was one
234
233
  bm << "/" if bm !~ /\/$/ && slash.any?
@@ -301,13 +300,15 @@ class Bookmarks
301
300
  if ! path # Print all bookmarks
302
301
  all = $el.elvar.bookmark_alist.collect { |bm|
303
302
  item = bm.to_a
304
- [item[0], item[1].to_a[0][1]]
303
+
304
+ second = item[1] # Either (filename . "/path") or ((filename . "/path") ...)
305
+ second = second[1].is_a?(String) ? second[1] : second[0][1]
306
+
307
+ [item[0], second]
305
308
  }
306
309
  all.each do |l|
307
310
  n, p = l
308
311
  result << "- #{n}) @#{p.sub(/\/$/,'')}\n"
309
- # puts "- #{n.ljust(7)} #{p.sub(/\/$/,'')}"
310
- #puts "- #{n}: #{p}"
311
312
  end
312
313
  return result
313
314
  end
@@ -21,19 +21,19 @@ class Buffers
21
21
  case Keys.prefix :clear=>true
22
22
 
23
23
  # Show all by default
24
- when nil, "all": return list.map{ |b| $el.buffer_name(b) }.map{ |o| "| #{o}\n" }.join('')
24
+ when nil, "all"; return list.map{ |b| $el.buffer_name(b) }.map{ |o| "| #{o}\n" }.join('')
25
25
 
26
26
  # Only files (no buffers)
27
- when :u: return list.select{ |b| $el.buffer_file_name(b) }.map{ |b| "| #{$el.buffer_name(b)}\n" }.join('')
27
+ when :u; return list.select{ |b| $el.buffer_file_name(b) }.map{ |b| "| #{$el.buffer_name(b)}\n" }.join('')
28
28
 
29
29
  # Only buffer without files
30
- when 0: return list.select{ |b| ! $el.buffer_file_name(b) }.map{ |b| "| #{$el.buffer_name(b)}\n" }[1..-1].join('')
30
+ when 0; return list.select{ |b| ! $el.buffer_file_name(b) }.map{ |b| "| #{$el.buffer_name(b)}\n" }[1..-1].join('')
31
31
 
32
- when 1: return list.select{ |b| $el.buffer_file_name(b) }.map{ |b| $el.buffer_name(b) }[1..-1]
33
- when 3: return list.select{ |b| ! $el.buffer_file_name(b) && $el.buffer_name(b) =~ /^#/ }.map{ |b| $el.buffer_name(b) }
34
- when 4: return list.select{ |b| ! $el.buffer_file_name(b) && $el.buffer_name(b) =~ /^\*console / }.map{ |b| $el.buffer_name(b) }
35
- when 6: return list.select{ |b| $el.buffer_file_name(b) =~ /\.rb$/ }.map{ |b| $el.buffer_name(b) }
36
- when 7: return list.select{ |b| $el.buffer_file_name(b) =~ /\.notes$/ }.map{ |b| $el.buffer_name(b) }
32
+ when 1; return list.select{ |b| $el.buffer_file_name(b) }.map{ |b| $el.buffer_name(b) }[1..-1]
33
+ when 3; return list.select{ |b| ! $el.buffer_file_name(b) && $el.buffer_name(b) =~ /^#/ }.map{ |b| $el.buffer_name(b) }
34
+ when 4; return list.select{ |b| ! $el.buffer_file_name(b) && $el.buffer_name(b) =~ /^\*console / }.map{ |b| $el.buffer_name(b) }
35
+ when 6; return list.select{ |b| $el.buffer_file_name(b) =~ /\.rb$/ }.map{ |b| $el.buffer_name(b) }
36
+ when 7; return list.select{ |b| $el.buffer_file_name(b) =~ /\.notes$/ }.map{ |b| $el.buffer_name(b) }
37
37
 
38
38
  end
39
39
  return
@@ -132,8 +132,8 @@ class Buffers
132
132
 
133
133
  def self.open_viewing
134
134
  case Keys.prefix
135
- when nil: Launcher.open("- Buffers.tree 25/")
136
- when 0: Launcher.open("- Buffers.tree/")
135
+ when nil; Launcher.open("- Buffers.tree 25/")
136
+ when 0; Launcher.open("- Buffers.tree/")
137
137
  else Launcher.open("- Buffers.tree #{Keys.prefix}/")
138
138
  end
139
139
  end
@@ -1,5 +1,5 @@
1
- require 'keys'
2
- require 'file_tree'
1
+ require 'xiki/keys'
2
+ require 'xiki/file_tree'
3
3
 
4
4
  # Provides copy and paste functionality
5
5
  class Clipboard
@@ -1,10 +1,6 @@
1
- require 'block'
1
+ require 'xiki/block'
2
2
  require 'stringio'
3
- gem 'ruby2ruby'
4
- require 'ruby2ruby'
5
- gem 'ParseTree'
6
- require 'parse_tree'
7
- require 'parse_tree_extensions' # required for .to_ruby
3
+
8
4
  class Code
9
5
 
10
6
  def self.menu
@@ -643,7 +639,7 @@ class Code
643
639
  end
644
640
 
645
641
  def self.to_ruby o
646
- o.to_ruby
642
+ o.to_source
647
643
  end
648
644
 
649
645
  def self.isearch_just_should
@@ -1,5 +1,5 @@
1
- require 'line'
2
- require 'ol'
1
+ require 'xiki/line'
2
+ require 'xiki/ol'
3
3
 
4
4
  class CodeTree
5
5
 
@@ -104,7 +104,7 @@ class CodeTree
104
104
  if ! stdout.nonempty? and ! returned.nil?
105
105
  stdout = self.returned_to_s returned
106
106
  else
107
- message(returned.to_s) if returned and (!returned.is_a?(String) or returned.size < 500)
107
+ $el.message(returned.to_s) if returned and (!returned.is_a?(String) or returned.size < 500)
108
108
  end
109
109
 
110
110
  stdout = self.draw_exception(e, code) if e
@@ -1,5 +1,5 @@
1
- require 'effects'
2
- require 'styles'
1
+ require 'xiki/effects'
2
+ require 'xiki/styles'
3
3
 
4
4
  # Colors lines, and shows only colored lines
5
5
  class Color
@@ -175,21 +175,13 @@ class Color
175
175
 
176
176
  return if ! $el
177
177
 
178
- # Orange path in mode line
179
- # Blue path in mode line
180
- # Styles.define :mode_line_dir, :fg=>"7ce", :size=>"0", :face=>"arial", :bold=>false
181
-
182
- Styles.define :mode_line_file, :fg=>"fff", :size=>"0", :face=>"arial", :bold=>false
183
-
184
- if Styles.inverse
185
- Styles.define :mode_line_dir, :fg=>"d93", :size=>"0", :face=>"arial", :bold=>false # Brighter
178
+ if Styles.dark_bg?
186
179
 
187
180
  Styles.define :color_rb_red, :bg => "500"
188
181
  Styles.define :color_rb_orange, :bg => "442500"
189
182
  Styles.define :color_rb_yellow, :bg => "440"
190
183
  Styles.define :color_rb_green, :bg => "131"
191
184
  Styles.define :color_rb_white, :fg=>'222', :bg=>'fff', :border=>['fff', -1]
192
-
193
185
  Styles.define :color_rb_light, :bg => "252525"
194
186
 
195
187
  Styles.define :color_rb_blue, :bg => "005"
@@ -197,14 +189,12 @@ class Color
197
189
 
198
190
  else
199
191
 
200
- Styles.define :mode_line_dir, :fg=>"ea4", :size=>"0", :face=>"arial", :bold=>false # Brighter
201
-
202
192
  Styles.define :color_rb_red, :bg => "ffd5d5"
203
193
  Styles.define :color_rb_orange, :bg => "ffe5bb"
204
194
  Styles.define :color_rb_yellow, :bg => "f9f9aa"
205
195
  Styles.define :color_rb_green, :bg => "e0ffcc"
206
- Styles.define :color_rb_light, :bg => "ddd"
207
196
  Styles.define :color_rb_white, :fg=>'222', :bg=>'666', :border=>['666', -1]
197
+ Styles.define :color_rb_light, :bg => "ddd"
208
198
 
209
199
  Styles.define :color_rb_blue, :bg => "dde5ff"
210
200
  Styles.define :color_rb_purple, :bg => "f2ddff"
@@ -106,6 +106,8 @@ class Console
106
106
  result = ""
107
107
  result << stdout.readlines.join('')
108
108
  result << stderr.readlines.join('')
109
+
110
+ result.force_encoding("binary") if result.respond_to? :force_encoding
109
111
  result.gsub!("\c@", '.') # Replace out characters that el4r can't handle
110
112
  return result
111
113
 
@@ -122,6 +124,10 @@ class Console
122
124
  $el.erase_buffer if reuse_buffer
123
125
  $el.elvar.default_directory = dir if dir
124
126
  $el.shell $el.current_buffer
127
+
128
+ # Don't prompt with "buffer has a running process" when closing
129
+ $el.set_process_query_on_exit_flag $el.get_buffer_process($el.current_buffer), nil
130
+
125
131
  Move.bottom
126
132
  if command # If nil, just open console
127
133
  $el.insert command
@@ -4,6 +4,10 @@
4
4
  class ControlLock
5
5
 
6
6
  def self.disable
7
- $el.control_lock_enable if $el.boundp(:control_lock_mode_p) and $el.elvar.control_lock_mode_p
7
+ $el.control_lock_enable if self.enabled?
8
+ end
9
+
10
+ def self.enabled?
11
+ $el.boundp(:control_lock_mode_p) and $el.elvar.control_lock_mode_p
8
12
  end
9
13
  end
@@ -29,11 +29,13 @@ class ControlTab
29
29
  View.layout_output :dont_highlight=>1
30
30
 
31
31
  Move.to_end
32
- Search.forward "^-", :go_anyway=>1
32
+ Search.forward "^ *-", :go_anyway=>1
33
33
  if View.cursor == View.bottom
34
34
  Move.to_previous_paragraph
35
35
  Line.next
36
36
  end
37
+
38
+ Line.to_beginning
37
39
  Effects.blink
38
40
  Launcher.launch
39
41
  @@nine_prefix = true
@@ -1,4 +1,4 @@
1
- require 'text_util'
1
+ require 'xiki/text_util'
2
2
 
3
3
  class Array
4
4
  def blank?
@@ -18,11 +18,15 @@ end
18
18
 
19
19
  class String
20
20
  def blank?
21
- self.nil? || self.empty?
21
+ empty?
22
22
  end
23
23
 
24
24
  def present?
25
- ! self.nil?
25
+ ! empty?
26
+ end
27
+
28
+ def any?
29
+ ! empty?
26
30
  end
27
31
 
28
32
  def unindent
@@ -7,23 +7,23 @@ class Cursor
7
7
  > Summary
8
8
  | Api for changing the cursor
9
9
  |
10
- - Colors/
10
+ - colors/
11
11
  @Cursor.white
12
12
  @Cursor.red
13
13
  @Cursor.green
14
14
  @Cursor.blue
15
15
  @Cursor.color "#80f"
16
- - Shapes/
16
+ - shapes/
17
17
  @Cursor.bar
18
18
  @Cursor.underscore
19
19
  @Cursor.hollow
20
20
  @Cursor.box
21
- - Colors and Shapes/
21
+ - colors and shapes/
22
22
  @Cursor.red_bar
23
23
  @Cursor.green_underscore
24
24
  @Cursor.blue_hollow
25
25
  @Cursor.black_box
26
- - Remembering and restoring cursor/
26
+ - remembering and restoring cursor/
27
27
  @Cursor.remember :a
28
28
  @Cursor.restore :a
29
29
  `
@@ -103,7 +103,6 @@ class Cursor
103
103
  before = @@remember[symbol]
104
104
  return Cursor.black_box unless before # Black if not found
105
105
  type, color = before
106
- $el.set_face_background :cursor, color
107
106
  $el.customize_set_variable :cursor_type, type
108
107
  end
109
108
 
File without changes
@@ -1,4 +1,4 @@
1
- require 'hide'
1
+ require 'xiki/hide'
2
2
 
3
3
  # Will store a diff each time a file is saved.
4
4
  class DiffLog
@@ -41,7 +41,7 @@ class DiffLog
41
41
 
42
42
  def self.diffs path=nil
43
43
 
44
- txt = File.read @@log
44
+ txt = File.open(@@log, 'rb') {|f| f.read}
45
45
  txt = txt.sub(/\A- /, '').split(/^- /).reverse.uniq
46
46
 
47
47
  path ||= Tree.dir # Pull from tree if there
@@ -201,8 +201,8 @@ class DiffLog
201
201
  diff = Console.sync "diff -U 0 \"#{patha}\" \"#{@@temp_path}\""
202
202
  return if diff.empty? || diff =~ /: No such file or directory\n/ # Fail quietly if file didn't exist
203
203
 
204
- diff = self.format diff
205
- return diff if options[:dont_log]
204
+ diff = self.format(diff) rescue nil
205
+ return diff if diff.nil? || options[:dont_log]
206
206
 
207
207
  File.open(@@log, "a") { |f| f << diff } unless diff.count("\n") <= 2
208
208
  end
@@ -1,4 +1,4 @@
1
- require 'styles'
1
+ require 'xiki/styles'
2
2
 
3
3
  # Makes visual things happen
4
4
  class Effects
@@ -43,6 +43,9 @@ class Effects
43
43
  "
44
44
  end
45
45
 
46
+ #
47
+ # Effects.glow :color=>:forest
48
+ #
46
49
  def self.glow options={}
47
50
 
48
51
  what = options[:what]
@@ -91,7 +94,7 @@ class Effects
91
94
 
92
95
  sequence.each do |i|
93
96
  $el.overlay_put over, :face, (faces[i-1] || faces[0])
94
- $el.sit_for 0.02
97
+ $el.sit_for 0.0005
95
98
  end
96
99
 
97
100
  $el.delete_overlay over
File without changes
@@ -1,9 +1,11 @@
1
- require 'styles'
2
- require 'line'
3
- require 'view'
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'xiki/styles'
4
+ require 'xiki/line'
5
+ require 'xiki/view'
4
6
  require 'net/http'
5
7
  require 'uri'
6
- require 'cursor'
8
+ require 'xiki/cursor'
7
9
 
8
10
  # Draws a tree from a dir structure and lets you incrementally search in the tree.
9
11
  # Usage (user):
@@ -164,8 +166,12 @@ class FileTree
164
166
 
165
167
  def self.grep_one_file(f, regex, indent)
166
168
  result = []
167
- IO.foreach(f) do |line|
168
- line.gsub!(/[\r\n\c@]+/, '')
169
+
170
+ return result if f =~ /\.(ai|icns|png|gif|jpg|gem)$/
171
+
172
+ IO.foreach(f, *Files.encoding_binary) do |line|
173
+ # line.gsub!(/[\r\n\c@]+/, '')
174
+ line.chomp!
169
175
  if regex
170
176
  next unless line =~ regex
171
177
  end
@@ -178,7 +184,7 @@ class FileTree
178
184
  result = []
179
185
  current_line = Search.outline_goto_once # If search_outline, we want to put cursor on that line when done
180
186
  line_found, matches_count, i = nil, 0, 0
181
- IO.foreach(f) do |line|
187
+ IO.foreach(f, *Files.encoding_binary) do |line|
182
188
  i+=1
183
189
  line.gsub!(/[\r\n\c@]+/, '')
184
190
 
@@ -267,7 +273,7 @@ class FileTree
267
273
 
268
274
  return if ! $el
269
275
 
270
- if Styles.inverse # Bullets
276
+ if Styles.dark_bg? # Bullets
271
277
  Styles.define :ls_bullet,
272
278
  :face => 'courier', :size => "+2", # Mac
273
279
  :fg => "dd7700", :bold => true
@@ -278,9 +284,9 @@ class FileTree
278
284
  end
279
285
 
280
286
 
281
- if Styles.inverse
282
- Styles.define :quote_heading, :fg=>"fff", :size=>"0", :face=>"arial", :bold=>false
283
- Styles.define :quote_heading2, :fg=>"fff", :size=>"-2", :face=>"arial", :bold=>false
287
+ if Styles.dark_bg?
288
+ Styles.define :quote_heading, :fg=>"fff", :size=>"0", :face=>"arial", :bold=>true
289
+ Styles.define :quote_heading2, :fg=>"fff", :size=>"-2", :face=>"arial", :bold=>true
284
290
  Styles.define :quote_heading_pipe, :fg=>"333", :size=>"0", :face => "verdana", :bold=>true
285
291
  Styles.define :quote_heading_bracket, :fg=>"4c4c4c", :size=>"-2", :face => "Monaco", :bold=>true
286
292
  Styles.define :quote_heading_small, :fg=>"fff", :size=>"-2", :face => "arial black", :bold=>true
@@ -297,8 +303,8 @@ class FileTree
297
303
  # Styles.define :ls_dir, :fg => "bbb", :face => "verdana", :size => "-2", :bold => true
298
304
 
299
305
  else
300
- Styles.define :quote_heading, :fg=>"444", :size=>"0", :face=>"arial", :bold=>false
301
- Styles.define :quote_heading2, :fg=>"aaa", :size=>"-2", :face=>"arial", :bold=>false
306
+ Styles.define :quote_heading, :fg=>"444", :size=>"0", :face=>"arial", :bold=>true
307
+ Styles.define :quote_heading2, :fg=>"aaa", :size=>"-2", :face=>"arial", :bold=>true
302
308
  Styles.define :quote_heading_pipe, :fg=>"bbb", :size=>"0", :face => "verdana", :bold=>true
303
309
  Styles.define :quote_heading_bracket, :fg=>"bbb", :size=>"-2", :face => "Monaco", :bold=>true
304
310
  Styles.define :quote_heading_small, :fg=>"fff", :size=>"-2", :face => "arial black", :bold=>true
@@ -322,7 +328,7 @@ class FileTree
322
328
  :size => "-2",
323
329
  :bold => true
324
330
 
325
- if Styles.inverse # | Quoted text
331
+ if Styles.dark_bg? # | Quoted text
326
332
  Styles.define :ls_quote,
327
333
  :size => "-1",
328
334
  :fg => "aaa"
@@ -425,12 +431,14 @@ class FileTree
425
431
  end
426
432
 
427
433
  def self.handles? list=nil
428
- begin
429
- list ||= Tree.construct_path(:list=>true) # Use current line by default
430
- rescue Exception=>e
431
- return nil
434
+
435
+ if list.nil?
436
+ list ||= Tree.construct_path(:list=>true) rescue nil # Use current line by default
432
437
  end
433
- return 0 if self.matches_root_pattern?(Line.without_label :line=>list.first)
438
+
439
+ list = list.first if list.is_a?(Array)
440
+
441
+ return 0 if self.matches_root_pattern?(Line.without_label :line=>list)
434
442
  nil
435
443
  end
436
444
 
@@ -1103,7 +1111,7 @@ class FileTree
1103
1111
  if Line.blank?
1104
1112
 
1105
1113
  if prefix == :u || txt =~ /\A +[-+]?\|[-+ ]/ # If C-u or whole thing is quoted already, unquote
1106
- txt = txt.grep(/\|/).join()
1114
+ txt = txt.split("\n").grep(/\|/).join("\n")
1107
1115
  return $el.insert(txt.gsub(/^ *[-+]?\|([-+ ]|$)/, "")) # Remove | ..., |+...., |<blank>, etc
1108
1116
  end
1109
1117
 
@@ -1276,7 +1284,7 @@ class FileTree
1276
1284
  return
1277
1285
  end
1278
1286
 
1279
- IO.foreach(path) do |line|
1287
+ IO.foreach(path, *Files.encoding_binary) do |line|
1280
1288
  i+=1
1281
1289
  line.sub!(/[\r\n]+$/, '')
1282
1290
 
@@ -1479,9 +1487,8 @@ class FileTree
1479
1487
 
1480
1488
  def self.copy_path options={}
1481
1489
  Effects.blink :what=>:line
1482
-
1483
1490
  # Return dir of view's file if at left margin, U, or not ^[|@-]
1484
- if Line !~ /^ +[|@+-]/ || Keys.prefix_u
1491
+ if Line !~ /^ +[|@+-]/ # || Keys.prefix_u# It will never be :u, because the prefix is cleared before this is called
1485
1492
  path = View.file
1486
1493
  else
1487
1494
  path = Xiki.trunk.last # Grab from wiki tree
@@ -1634,6 +1641,9 @@ class FileTree
1634
1641
  Effects.glow :fade_out=>1
1635
1642
  Line.delete
1636
1643
  Line.to_beginning
1644
+
1645
+ View.message "File deleted"
1646
+
1637
1647
  end
1638
1648
 
1639
1649
  def self.move_latest_screenshot_to dest_path, dest_dir
@@ -1854,7 +1864,7 @@ class FileTree
1854
1864
  when 0
1855
1865
  # Just show path if 0+...
1856
1866
  when :- # Just show # foo... comments...
1857
- self.enter_lines(/(^ *def |(^| )# .+\.\.\.$)/, :current_line=>current_line)
1867
+ self.enter_lines(/(^ *def |(^| )(#|"|\/\/) .+\.\.\.$)/, :current_line=>current_line)
1858
1868
  when 6 # Just show # foo... comments...
1859
1869
  self.enter_lines(/(^ *def |self\.)/, :current_line=>current_line)
1860
1870
  when :u