VimMate 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,5 +1,21 @@
1
1
  = Changelog
2
2
 
3
+ === Version 0.6.6
4
+ - # 15198: After a file was opened in Vim, the focus was not in Vim, so if you
5
+ started typing, you would type in the file list, not in Vim. This has been
6
+ corrected. Thanks to Gerda Shank for the bug report.
7
+ - # 14387: A new option is now available to start a login shell by default in
8
+ the terminal window. The option :terminals_login_shell is set to false by
9
+ default. If set to true, it will launch the $SHELL command if defined, the
10
+ shell defined in /etc/passwd if defined and /bin/sh otherwise. In all cases,
11
+ it will pass the -l option to the shell. Thanks to Pablo Castellazzi for the
12
+ patch.
13
+ - # 14886: When filtering, directories that contain no matching files are now
14
+ automatically hidden. Also, a new option is now available to automatically
15
+ expand the file tree when filtering. The option is
16
+ :files_auto_expand_on_filter and is set to false by default. Thanks to
17
+ Stefan for the original patch.
18
+
3
19
  === Version 0.6.5
4
20
  - VimMate would crash when VTE was not present when using shortcut keys
5
21
  - Changed some shortcut keys:
data/Rakefile CHANGED
@@ -71,6 +71,26 @@ desc 'Remove rdoc and package'
71
71
  task :clobber => [:clobber_rdoc, :clobber_package]
72
72
 
73
73
  desc 'Upload rdoc to Rubyforge'
74
- task :upload_rdoc => [:rdoc] do
74
+ task :upload_rdoc => [:add_tracker] do
75
75
  sh "scp -r html bennygui@rubyforge.org:/var/www/gforge-projects/vimmate"
76
76
  end
77
+
78
+ desc 'Add google tracker'
79
+ task :add_tracker => [:rdoc] do
80
+ Dir['html/**/*.html'].each do |file|
81
+ h = File.read(file).sub(/<\/body>/, <<-EOS)
82
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
83
+ </script>
84
+ <script type='text/javascript'>
85
+ //<![CDATA[
86
+ _uacct = "UA-2894512-3";
87
+ if (typeof(window['urchinTracker']) != "undefined") { urchinTracker(); }
88
+ //]]>
89
+ </script>
90
+ </body>
91
+ EOS
92
+ open(file, 'w') do |f|
93
+ f.write(h)
94
+ end
95
+ end
96
+ end
@@ -44,6 +44,7 @@ module VimMate
44
44
  :file_hover_selection => false,
45
45
  :file_directory_separator => true,
46
46
  :files_filter_active => true,
47
+ :files_auto_expand_on_filter => false,
47
48
  :files_refresh_interval => 10,
48
49
  :files_default_open_in_tabs => true,
49
50
  :files_use_ellipsis => true,
@@ -61,6 +62,7 @@ module VimMate
61
62
  :terminals_audible_bell => false,
62
63
  :terminals_visible_bell => false,
63
64
  :terminals_autoexec => "",
65
+ :terminals_login_shell => false,
64
66
  :subversion_enabled => true,
65
67
  }.freeze
66
68
 
@@ -46,6 +46,8 @@ module VimMate
46
46
  TYPE = 4
47
47
  # Column used to store the status of the file
48
48
  STATUS = 5
49
+ # Visiblity of row
50
+ VISIBLE = 6
49
51
  # Type of row: file
50
52
  TYPE_FILE = 0
51
53
  # Type of row: directory
@@ -67,7 +69,8 @@ module VimMate
67
69
  Gdk::Pixbuf,
68
70
  String,
69
71
  Fixnum,
70
- String)
72
+ String,
73
+ FalseClass)
71
74
  @gtk_tree_store.set_sort_column_id(SORT)
72
75
 
73
76
  # Filtered Tree Store
@@ -75,14 +78,8 @@ module VimMate
75
78
  @gtk_filtered_tree_model.set_visible_func do |model, iter|
76
79
  if @filter_string.nil? or @filter_string.empty?
77
80
  true
78
- elsif iter[TYPE] == TYPE_DIRECTORY or iter[TYPE] == TYPE_SEPARATOR
79
- true
80
81
  else
81
- if not iter[NAME] or iter[NAME].index(@filter_string)
82
- true
83
- else
84
- false
85
- end
82
+ iter[VISIBLE]
86
83
  end
87
84
  end
88
85
 
@@ -271,14 +268,51 @@ module VimMate
271
268
 
272
269
  # Set a filter: files must contain this string
273
270
  def filter=(filter)
271
+ if filter.empty?
272
+ clear_filter
273
+ return
274
+ end
274
275
  @filter_string = filter
276
+
277
+ # Filter tree view so only directories and separators with matching
278
+ # elements are set visible
279
+ visible_path = Hash.new(false)
280
+
281
+ @gtk_tree_store.each do |model,path,iter|
282
+ if iter[NAME] and iter[TYPE] == TYPE_FILE
283
+ if iter[VISIBLE] = iter[NAME].index(@filter_string)
284
+ begin
285
+ visible_path[path.to_s] = true
286
+ end while path.up!
287
+ end
288
+ else
289
+ iter[VISIBLE] = true
290
+ if iter[TYPE] == TYPE_SEPARATOR
291
+ visible_path[path.to_s] = true
292
+ end
293
+ end
294
+ end
295
+
296
+ @gtk_tree_store.each do |model,path,iter|
297
+ if not visible_path[path.to_s]
298
+ iter[VISIBLE] = false
299
+ if iter[TYPE] == TYPE_DIRECTORY and Config[:file_directory_separator]
300
+ if iter.next!
301
+ iter[VISIBLE] = false
302
+ end
303
+ end
304
+ end
305
+ end
306
+
275
307
  @gtk_filtered_tree_model.refilter
308
+ @gtk_tree_view.expand_all if Config[:files_auto_expand_on_filter]
276
309
  end
277
310
 
278
311
  # Clear the filter
279
312
  def clear_filter
280
313
  @filter_string = ""
281
314
  @gtk_filtered_tree_model.refilter
315
+ @gtk_tree_view.collapse_all if Config[:files_auto_expand_on_filter]
282
316
  filter
283
317
  end
284
318
 
@@ -145,7 +145,16 @@ module VimMate
145
145
  gtk_terminal.signal_connect("window-title-changed") do |terminal|
146
146
  @gtk_notebook.set_tab_label_text(terminal, terminal.window_title)
147
147
  end
148
- gtk_terminal.pid = gtk_terminal.fork_command
148
+ if (Config[:terminals_login_shell])
149
+ begin
150
+ require 'etc'
151
+ rescue LoadError
152
+ end
153
+ shell = (ENV["SHELL"] || Etc.getpwnam(Etc.getlogin).shell rescue nil || "/bin/sh")
154
+ gtk_terminal.pid = gtk_terminal.fork_command(shell, ["-l"])
155
+ else
156
+ gtk_terminal.pid = gtk_terminal.fork_command
157
+ end
149
158
  gtk_terminal.feed_child(Config[:terminals_autoexec])
150
159
  gtk_terminal.show
151
160
  gtk_terminal
@@ -24,6 +24,6 @@ SOFTWARE.
24
24
  module VimMate
25
25
 
26
26
  # VimMate's version
27
- VERSION = "0.6.5"
27
+ VERSION = "0.6.6"
28
28
  end
29
29
 
@@ -68,6 +68,7 @@ module VimMate
68
68
  raise "Unknow open kind: #{kind}"
69
69
  end
70
70
  `gvim --servername #{@vim_server_name} --remote-send '<ESC><ESC><ESC>:buffer #{path}<CR>'`
71
+ focus_vim
71
72
  self
72
73
  end
73
74
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: VimMate
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.6.5
7
- date: 2007-09-29 00:00:00 -04:00
6
+ version: 0.6.6
7
+ date: 2007-11-03 00:00:00 -04:00
8
8
  summary: VimMate is a graphical add-on to Vim with IDE-like features.
9
9
  require_paths:
10
10
  - lib