command-t 1.3.1 → 1.4
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/LICENSE +1 -1
- data/README.txt +108 -29
- data/Rakefile +5 -4
- data/doc/command-t.txt +108 -29
- data/plugin/command-t.vim +15 -2
- data/ruby/command-t/Makefile +13 -13
- data/ruby/command-t/controller.rb +52 -25
- data/ruby/command-t/ext.bundle +0 -0
- data/ruby/command-t/extconf.rb +2 -0
- data/ruby/command-t/finder.rb +5 -3
- data/ruby/command-t/finder/file_finder.rb +5 -1
- data/ruby/command-t/finder/tag_finder.rb +44 -0
- data/ruby/command-t/match_window.rb +73 -18
- data/ruby/command-t/scanner/jump_scanner.rb +1 -0
- data/ruby/command-t/scanner/tag_scanner.rb +49 -0
- data/ruby/command-t/stub.rb +1 -1
- data/ruby/command-t/vim.rb +9 -1
- metadata +4 -4
- data/doc/tags +0 -46
data/LICENSE
CHANGED
data/README.txt
CHANGED
@@ -12,10 +12,11 @@ CONTENTS *command-t-contents*
|
|
12
12
|
7. Mappings |command-t-mappings|
|
13
13
|
8. Options |command-t-options|
|
14
14
|
9. Authors |command-t-authors|
|
15
|
-
10.
|
16
|
-
11.
|
17
|
-
12.
|
18
|
-
13.
|
15
|
+
10. Development |command-t-development|
|
16
|
+
11. Website |command-t-website|
|
17
|
+
12. Donations |command-t-donations|
|
18
|
+
13. License |command-t-license|
|
19
|
+
14. History |command-t-history|
|
19
20
|
|
20
21
|
|
21
22
|
INTRODUCTION *command-t-intro*
|
@@ -147,11 +148,27 @@ you can build the extension with:
|
|
147
148
|
ruby extconf.rb
|
148
149
|
make
|
149
150
|
|
150
|
-
Note: If you are an RVM user, you must perform the build using the
|
151
|
-
version of Ruby that Vim itself is linked against. This will often be the
|
152
|
-
system Ruby, which can be selected before issuing the "make" command with
|
151
|
+
Note: If you are an RVM or rbenv user, you must perform the build using the
|
152
|
+
same version of Ruby that Vim itself is linked against. This will often be the
|
153
|
+
system Ruby, which can be selected before issuing the "make" command with one
|
154
|
+
of the following commands:
|
153
155
|
|
154
156
|
rvm use system
|
157
|
+
rbenv local system
|
158
|
+
|
159
|
+
Note: Make sure you compile targeting the same architecture Vim was built for.
|
160
|
+
For instance, MacVim binaries are built for i386, but sometimes GCC compiles
|
161
|
+
for x86_64. First you have to check the platfom Vim was built for:
|
162
|
+
|
163
|
+
vim --version
|
164
|
+
...
|
165
|
+
Compilation: gcc ... -arch i386 ...
|
166
|
+
...
|
167
|
+
|
168
|
+
and make sure you use the correct ARCHFLAGS during compilation:
|
169
|
+
|
170
|
+
export ARCHFLAGS="-arch i386"
|
171
|
+
make
|
155
172
|
|
156
173
|
|
157
174
|
MANAGING USING PATHOGEN *command-t-pathogen*
|
@@ -190,6 +207,7 @@ Or you can switch to a specific release with:
|
|
190
207
|
After installing or updating you must build the extension:
|
191
208
|
|
192
209
|
cd ~/.vim/bundle/command-t
|
210
|
+
bundle install
|
193
211
|
rake make
|
194
212
|
|
195
213
|
While the Vimball installation automatically generates the help tags, under
|
@@ -304,6 +322,7 @@ has focus:
|
|
304
322
|
<C-k> select previous file in the file listing
|
305
323
|
<C-p> select previous file in the file listing
|
306
324
|
<Up> select previous file in the file listing
|
325
|
+
<C-f> flush the cache (see |:CommandTFlush| for details)
|
307
326
|
<C-c> cancel (dismisses file listing)
|
308
327
|
|
309
328
|
The following is also available on terminals which support it:
|
@@ -340,13 +359,21 @@ COMMANDS *command-t-commands*
|
|
340
359
|
can persist across Vim sessions (see Vim's |jumplist|
|
341
360
|
documentation for more info).
|
342
361
|
|
362
|
+
*:CommandTTag*
|
363
|
+
|:CommandTTag| Brings up the Command-T window tags window, which can
|
364
|
+
be used to select from the tags, if any, returned by
|
365
|
+
Vim's |taglist()| function. See Vim's |tag| documentation
|
366
|
+
for general info on tags.
|
367
|
+
|
343
368
|
*:CommandTFlush*
|
344
369
|
|:CommandTFlush|Instructs the plug-in to flush its path cache, causing
|
345
370
|
the directory to be rescanned for new or deleted paths
|
346
|
-
the next time the file window is shown
|
347
|
-
|
348
|
-
|
349
|
-
|
371
|
+
the next time the file window is shown (pressing <C-f> when
|
372
|
+
a match listing is visible flushes the cache immediately; this
|
373
|
+
mapping is configurable via the |g:CommandTRefreshMap|
|
374
|
+
setting). In addition, all configuration settings are
|
375
|
+
re-evaluated, causing any changes made to settings via the
|
376
|
+
|:let| command to be picked up.
|
350
377
|
|
351
378
|
|
352
379
|
MAPPINGS *command-t-mappings*
|
@@ -424,6 +451,13 @@ Following is a list of all available options:
|
|
424
451
|
If set to 0, the window will occupy as much of the available space as
|
425
452
|
needed to show matching entries.
|
426
453
|
|
454
|
+
*g:CommandTMinHeight*
|
455
|
+
|g:CommandTMinHeight| number (default: 0)
|
456
|
+
|
457
|
+
The minimum height in lines the match window is allowed to shrink to.
|
458
|
+
If set to 0, will default to a single line. If set above the max height,
|
459
|
+
will default to |g:CommandTMaxHeight|.
|
460
|
+
|
427
461
|
*g:CommandTAlwaysShowDotFiles*
|
428
462
|
|g:CommandTAlwaysShowDotFiles| boolean (default: 0)
|
429
463
|
|
@@ -488,6 +522,12 @@ Following is a list of all available options:
|
|
488
522
|
you want the best match to appear in a fixed location on the screen
|
489
523
|
but still be near the prompt at the bottom.
|
490
524
|
|
525
|
+
*g:CommandTTagIncludeFilenames*
|
526
|
+
|g:CommandTTagIncludeFilenames| boolean (default: 0)
|
527
|
+
|
528
|
+
When this setting is off (the default) the matches in the |:CommandTTag|
|
529
|
+
listing do not include filenames.
|
530
|
+
|
491
531
|
As well as the basic options listed above, there are a number of settings that
|
492
532
|
can be used to override the default key mappings used by Command-T. For
|
493
533
|
example, to set <C-x> as the mapping for cancelling (dismissing) the Command-T
|
@@ -542,6 +582,9 @@ Following is a list of all map settings and their defaults:
|
|
542
582
|
*g:CommandTClearMap*
|
543
583
|
|g:CommandTClearMap| <C-u>
|
544
584
|
|
585
|
+
*g:CommandTRefreshMap*
|
586
|
+
|g:CommandTRefreshMap| <C-f>
|
587
|
+
|
545
588
|
*g:CommandTCursorLeftMap*
|
546
589
|
|g:CommandTCursorLeftMap| <Left>
|
547
590
|
<C-h>
|
@@ -583,18 +626,14 @@ Command-T is written and maintained by Wincent Colaiuta <win@wincent.com>.
|
|
583
626
|
Other contributors that have submitted patches include (in alphabetical
|
584
627
|
order):
|
585
628
|
|
586
|
-
Anthony Panozzo
|
587
|
-
Daniel Hahler
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
Scott Bronson
|
593
|
-
|
594
|
-
Sung Pae
|
595
|
-
Victor Hugo Borja
|
596
|
-
Woody Peterson
|
597
|
-
Zak Johnson
|
629
|
+
Anthony Panozzo Mike Lundy Steven Moazami
|
630
|
+
Daniel Hahler Nate Kane Sung Pae
|
631
|
+
Felix Tjandrawibawa Nicholas Alpi Thomas Pelletier
|
632
|
+
Gary Bernhardt Nadav Samet Victor Hugo Borja
|
633
|
+
Jeff Kreeftmeijer Noon Silk Woody Peterson
|
634
|
+
Lucas de Vries Rainux Luo Yan Pritzker
|
635
|
+
Marian Schubert Scott Bronson Zak Johnson
|
636
|
+
Matthew Todd Seth Fowler
|
598
637
|
|
599
638
|
As this was the first Vim plug-in I had ever written I was heavily influenced
|
600
639
|
by the design of the LustyExplorer plug-in by Stephen Bach, which I understand
|
@@ -611,6 +650,38 @@ LustyExplorer is available from:
|
|
611
650
|
http://www.vim.org/scripts/script.php?script_id=1890
|
612
651
|
|
613
652
|
|
653
|
+
DEVELOPMENT *command-t-development*
|
654
|
+
|
655
|
+
Development in progress can be inspected via the project's Git web-based
|
656
|
+
repository browser at:
|
657
|
+
|
658
|
+
https://wincent.com/repos/command-t
|
659
|
+
|
660
|
+
the clone URL for which is:
|
661
|
+
|
662
|
+
git://git.wincent.com/command-t.git
|
663
|
+
|
664
|
+
Mirrors exist on GitHub and Gitorious; these are automatically updated once
|
665
|
+
per hour from the authoritative repository:
|
666
|
+
|
667
|
+
https://github.com/wincent/command-t
|
668
|
+
https://gitorious.org/command-t/command-t
|
669
|
+
|
670
|
+
Patches are welcome via the usual mechanisms (pull requests, email, posting to
|
671
|
+
the project issue tracker etc).
|
672
|
+
|
673
|
+
As many users choose to track Command-T using Pathogen, which often means
|
674
|
+
running a version later than the last official release, the intention is that
|
675
|
+
the "master" branch should be kept in a stable and reliable state as much as
|
676
|
+
possible.
|
677
|
+
|
678
|
+
Riskier changes are first cooked on the "next" branch for a period before
|
679
|
+
being merged into master. You can track this branch if you're feeling wild and
|
680
|
+
experimental, but note that the "next" branch may periodically be rewound
|
681
|
+
(force-updated) to keep it in sync with the "master" branch after each
|
682
|
+
official release.
|
683
|
+
|
684
|
+
|
614
685
|
WEBSITE *command-t-website*
|
615
686
|
|
616
687
|
The official website for Command-T is:
|
@@ -619,11 +690,6 @@ The official website for Command-T is:
|
|
619
690
|
|
620
691
|
The latest release will always be available from there.
|
621
692
|
|
622
|
-
Development in progress can be inspected via the project's Git repository
|
623
|
-
browser at:
|
624
|
-
|
625
|
-
https://wincent.com/repos/command-t
|
626
|
-
|
627
693
|
A copy of each release is also available from the official Vim scripts site
|
628
694
|
at:
|
629
695
|
|
@@ -645,7 +711,7 @@ PayPal to win@wincent.com:
|
|
645
711
|
|
646
712
|
LICENSE *command-t-license*
|
647
713
|
|
648
|
-
Copyright 2010-
|
714
|
+
Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
649
715
|
|
650
716
|
Redistribution and use in source and binary forms, with or without
|
651
717
|
modification, are permitted provided that the following conditions are met:
|
@@ -670,6 +736,19 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
670
736
|
|
671
737
|
HISTORY *command-t-history*
|
672
738
|
|
739
|
+
1.4 (20 June 2012)
|
740
|
+
|
741
|
+
- added |:CommandTTag| command (patches from Noon Silk)
|
742
|
+
- turn off |'colorcolumn'| and |'relativenumber'| in the match window (patch
|
743
|
+
from Jeff Kreeftmeijer)
|
744
|
+
- documentation update (patch from Nicholas Alpi)
|
745
|
+
- added |:CommandTMinHeight| option (patch from Nate Kane)
|
746
|
+
- highlight (by underlining) matched characters in the match listing (requires
|
747
|
+
Vim to have been compiled with the +conceal feature, which is available in
|
748
|
+
Vim 7.3 or later; patch from Steven Moazami)
|
749
|
+
- added the ability to flush the cache while the match window is open using
|
750
|
+
<C-f>
|
751
|
+
|
673
752
|
1.3.1 (18 December 2011)
|
674
753
|
|
675
754
|
- fix jumplist navigation under Ruby 1.9.x (patch from Woody Peterson)
|
data/Rakefile
CHANGED
@@ -86,7 +86,7 @@ The general release sequence is:
|
|
86
86
|
rake prerelease
|
87
87
|
rake gem
|
88
88
|
rake push
|
89
|
-
|
89
|
+
bundle exec rake upload:all
|
90
90
|
rake archive
|
91
91
|
|
92
92
|
Most of the Rake tasks run fine without Bundler, and in fact, we
|
@@ -101,13 +101,13 @@ end
|
|
101
101
|
|
102
102
|
task :check_bundler do
|
103
103
|
unless ENV.has_key? 'BUNDLE_GEMFILE'
|
104
|
-
warn 'warning: Bundler is not loaded; try running with
|
104
|
+
warn 'warning: Bundler is not loaded; try running with `bundle exec rake`'
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
desc 'Run specs'
|
109
109
|
task :spec do
|
110
|
-
system '
|
110
|
+
system 'bundle exec rspec spec'
|
111
111
|
bail_on_failure
|
112
112
|
end
|
113
113
|
|
@@ -121,7 +121,8 @@ end
|
|
121
121
|
desc 'Clean compiled products'
|
122
122
|
task :clean do
|
123
123
|
Dir.chdir 'ruby/command-t' do
|
124
|
-
system 'make clean'
|
124
|
+
system 'make clean' if File.exists?('Makefile')
|
125
|
+
system 'rm -f Makefile'
|
125
126
|
end
|
126
127
|
end
|
127
128
|
|
data/doc/command-t.txt
CHANGED
@@ -12,10 +12,11 @@ CONTENTS *command-t-contents*
|
|
12
12
|
7. Mappings |command-t-mappings|
|
13
13
|
8. Options |command-t-options|
|
14
14
|
9. Authors |command-t-authors|
|
15
|
-
10.
|
16
|
-
11.
|
17
|
-
12.
|
18
|
-
13.
|
15
|
+
10. Development |command-t-development|
|
16
|
+
11. Website |command-t-website|
|
17
|
+
12. Donations |command-t-donations|
|
18
|
+
13. License |command-t-license|
|
19
|
+
14. History |command-t-history|
|
19
20
|
|
20
21
|
|
21
22
|
INTRODUCTION *command-t-intro*
|
@@ -147,11 +148,27 @@ you can build the extension with:
|
|
147
148
|
ruby extconf.rb
|
148
149
|
make
|
149
150
|
|
150
|
-
Note: If you are an RVM user, you must perform the build using the
|
151
|
-
version of Ruby that Vim itself is linked against. This will often be the
|
152
|
-
system Ruby, which can be selected before issuing the "make" command with
|
151
|
+
Note: If you are an RVM or rbenv user, you must perform the build using the
|
152
|
+
same version of Ruby that Vim itself is linked against. This will often be the
|
153
|
+
system Ruby, which can be selected before issuing the "make" command with one
|
154
|
+
of the following commands:
|
153
155
|
|
154
156
|
rvm use system
|
157
|
+
rbenv local system
|
158
|
+
|
159
|
+
Note: Make sure you compile targeting the same architecture Vim was built for.
|
160
|
+
For instance, MacVim binaries are built for i386, but sometimes GCC compiles
|
161
|
+
for x86_64. First you have to check the platfom Vim was built for:
|
162
|
+
|
163
|
+
vim --version
|
164
|
+
...
|
165
|
+
Compilation: gcc ... -arch i386 ...
|
166
|
+
...
|
167
|
+
|
168
|
+
and make sure you use the correct ARCHFLAGS during compilation:
|
169
|
+
|
170
|
+
export ARCHFLAGS="-arch i386"
|
171
|
+
make
|
155
172
|
|
156
173
|
|
157
174
|
MANAGING USING PATHOGEN *command-t-pathogen*
|
@@ -190,6 +207,7 @@ Or you can switch to a specific release with:
|
|
190
207
|
After installing or updating you must build the extension:
|
191
208
|
|
192
209
|
cd ~/.vim/bundle/command-t
|
210
|
+
bundle install
|
193
211
|
rake make
|
194
212
|
|
195
213
|
While the Vimball installation automatically generates the help tags, under
|
@@ -304,6 +322,7 @@ has focus:
|
|
304
322
|
<C-k> select previous file in the file listing
|
305
323
|
<C-p> select previous file in the file listing
|
306
324
|
<Up> select previous file in the file listing
|
325
|
+
<C-f> flush the cache (see |:CommandTFlush| for details)
|
307
326
|
<C-c> cancel (dismisses file listing)
|
308
327
|
|
309
328
|
The following is also available on terminals which support it:
|
@@ -340,13 +359,21 @@ COMMANDS *command-t-commands*
|
|
340
359
|
can persist across Vim sessions (see Vim's |jumplist|
|
341
360
|
documentation for more info).
|
342
361
|
|
362
|
+
*:CommandTTag*
|
363
|
+
|:CommandTTag| Brings up the Command-T window tags window, which can
|
364
|
+
be used to select from the tags, if any, returned by
|
365
|
+
Vim's |taglist()| function. See Vim's |tag| documentation
|
366
|
+
for general info on tags.
|
367
|
+
|
343
368
|
*:CommandTFlush*
|
344
369
|
|:CommandTFlush|Instructs the plug-in to flush its path cache, causing
|
345
370
|
the directory to be rescanned for new or deleted paths
|
346
|
-
the next time the file window is shown
|
347
|
-
|
348
|
-
|
349
|
-
|
371
|
+
the next time the file window is shown (pressing <C-f> when
|
372
|
+
a match listing is visible flushes the cache immediately; this
|
373
|
+
mapping is configurable via the |g:CommandTRefreshMap|
|
374
|
+
setting). In addition, all configuration settings are
|
375
|
+
re-evaluated, causing any changes made to settings via the
|
376
|
+
|:let| command to be picked up.
|
350
377
|
|
351
378
|
|
352
379
|
MAPPINGS *command-t-mappings*
|
@@ -424,6 +451,13 @@ Following is a list of all available options:
|
|
424
451
|
If set to 0, the window will occupy as much of the available space as
|
425
452
|
needed to show matching entries.
|
426
453
|
|
454
|
+
*g:CommandTMinHeight*
|
455
|
+
|g:CommandTMinHeight| number (default: 0)
|
456
|
+
|
457
|
+
The minimum height in lines the match window is allowed to shrink to.
|
458
|
+
If set to 0, will default to a single line. If set above the max height,
|
459
|
+
will default to |g:CommandTMaxHeight|.
|
460
|
+
|
427
461
|
*g:CommandTAlwaysShowDotFiles*
|
428
462
|
|g:CommandTAlwaysShowDotFiles| boolean (default: 0)
|
429
463
|
|
@@ -488,6 +522,12 @@ Following is a list of all available options:
|
|
488
522
|
you want the best match to appear in a fixed location on the screen
|
489
523
|
but still be near the prompt at the bottom.
|
490
524
|
|
525
|
+
*g:CommandTTagIncludeFilenames*
|
526
|
+
|g:CommandTTagIncludeFilenames| boolean (default: 0)
|
527
|
+
|
528
|
+
When this setting is off (the default) the matches in the |:CommandTTag|
|
529
|
+
listing do not include filenames.
|
530
|
+
|
491
531
|
As well as the basic options listed above, there are a number of settings that
|
492
532
|
can be used to override the default key mappings used by Command-T. For
|
493
533
|
example, to set <C-x> as the mapping for cancelling (dismissing) the Command-T
|
@@ -542,6 +582,9 @@ Following is a list of all map settings and their defaults:
|
|
542
582
|
*g:CommandTClearMap*
|
543
583
|
|g:CommandTClearMap| <C-u>
|
544
584
|
|
585
|
+
*g:CommandTRefreshMap*
|
586
|
+
|g:CommandTRefreshMap| <C-f>
|
587
|
+
|
545
588
|
*g:CommandTCursorLeftMap*
|
546
589
|
|g:CommandTCursorLeftMap| <Left>
|
547
590
|
<C-h>
|
@@ -583,18 +626,14 @@ Command-T is written and maintained by Wincent Colaiuta <win@wincent.com>.
|
|
583
626
|
Other contributors that have submitted patches include (in alphabetical
|
584
627
|
order):
|
585
628
|
|
586
|
-
Anthony Panozzo
|
587
|
-
Daniel Hahler
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
Scott Bronson
|
593
|
-
|
594
|
-
Sung Pae
|
595
|
-
Victor Hugo Borja
|
596
|
-
Woody Peterson
|
597
|
-
Zak Johnson
|
629
|
+
Anthony Panozzo Mike Lundy Steven Moazami
|
630
|
+
Daniel Hahler Nate Kane Sung Pae
|
631
|
+
Felix Tjandrawibawa Nicholas Alpi Thomas Pelletier
|
632
|
+
Gary Bernhardt Nadav Samet Victor Hugo Borja
|
633
|
+
Jeff Kreeftmeijer Noon Silk Woody Peterson
|
634
|
+
Lucas de Vries Rainux Luo Yan Pritzker
|
635
|
+
Marian Schubert Scott Bronson Zak Johnson
|
636
|
+
Matthew Todd Seth Fowler
|
598
637
|
|
599
638
|
As this was the first Vim plug-in I had ever written I was heavily influenced
|
600
639
|
by the design of the LustyExplorer plug-in by Stephen Bach, which I understand
|
@@ -611,6 +650,38 @@ LustyExplorer is available from:
|
|
611
650
|
http://www.vim.org/scripts/script.php?script_id=1890
|
612
651
|
|
613
652
|
|
653
|
+
DEVELOPMENT *command-t-development*
|
654
|
+
|
655
|
+
Development in progress can be inspected via the project's Git web-based
|
656
|
+
repository browser at:
|
657
|
+
|
658
|
+
https://wincent.com/repos/command-t
|
659
|
+
|
660
|
+
the clone URL for which is:
|
661
|
+
|
662
|
+
git://git.wincent.com/command-t.git
|
663
|
+
|
664
|
+
Mirrors exist on GitHub and Gitorious; these are automatically updated once
|
665
|
+
per hour from the authoritative repository:
|
666
|
+
|
667
|
+
https://github.com/wincent/command-t
|
668
|
+
https://gitorious.org/command-t/command-t
|
669
|
+
|
670
|
+
Patches are welcome via the usual mechanisms (pull requests, email, posting to
|
671
|
+
the project issue tracker etc).
|
672
|
+
|
673
|
+
As many users choose to track Command-T using Pathogen, which often means
|
674
|
+
running a version later than the last official release, the intention is that
|
675
|
+
the "master" branch should be kept in a stable and reliable state as much as
|
676
|
+
possible.
|
677
|
+
|
678
|
+
Riskier changes are first cooked on the "next" branch for a period before
|
679
|
+
being merged into master. You can track this branch if you're feeling wild and
|
680
|
+
experimental, but note that the "next" branch may periodically be rewound
|
681
|
+
(force-updated) to keep it in sync with the "master" branch after each
|
682
|
+
official release.
|
683
|
+
|
684
|
+
|
614
685
|
WEBSITE *command-t-website*
|
615
686
|
|
616
687
|
The official website for Command-T is:
|
@@ -619,11 +690,6 @@ The official website for Command-T is:
|
|
619
690
|
|
620
691
|
The latest release will always be available from there.
|
621
692
|
|
622
|
-
Development in progress can be inspected via the project's Git repository
|
623
|
-
browser at:
|
624
|
-
|
625
|
-
https://wincent.com/repos/command-t
|
626
|
-
|
627
693
|
A copy of each release is also available from the official Vim scripts site
|
628
694
|
at:
|
629
695
|
|
@@ -645,7 +711,7 @@ PayPal to win@wincent.com:
|
|
645
711
|
|
646
712
|
LICENSE *command-t-license*
|
647
713
|
|
648
|
-
Copyright 2010-
|
714
|
+
Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
649
715
|
|
650
716
|
Redistribution and use in source and binary forms, with or without
|
651
717
|
modification, are permitted provided that the following conditions are met:
|
@@ -670,6 +736,19 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
670
736
|
|
671
737
|
HISTORY *command-t-history*
|
672
738
|
|
739
|
+
1.4 (20 June 2012)
|
740
|
+
|
741
|
+
- added |:CommandTTag| command (patches from Noon Silk)
|
742
|
+
- turn off |'colorcolumn'| and |'relativenumber'| in the match window (patch
|
743
|
+
from Jeff Kreeftmeijer)
|
744
|
+
- documentation update (patch from Nicholas Alpi)
|
745
|
+
- added |:CommandTMinHeight| option (patch from Nate Kane)
|
746
|
+
- highlight (by underlining) matched characters in the match listing (requires
|
747
|
+
Vim to have been compiled with the +conceal feature, which is available in
|
748
|
+
Vim 7.3 or later; patch from Steven Moazami)
|
749
|
+
- added the ability to flush the cache while the match window is open using
|
750
|
+
<C-f>
|
751
|
+
|
673
752
|
1.3.1 (18 December 2011)
|
674
753
|
|
675
754
|
- fix jumplist navigation under Ruby 1.9.x (patch from Woody Peterson)
|
data/plugin/command-t.vim
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
" command-t.vim
|
2
|
-
" Copyright 2010-
|
2
|
+
" Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
3
3
|
"
|
4
4
|
" Redistribution and use in source and binary forms, with or without
|
5
5
|
" modification, are permitted provided that the following conditions are met:
|
@@ -22,13 +22,14 @@
|
|
22
22
|
" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
23
23
|
" POSSIBILITY OF SUCH DAMAGE.
|
24
24
|
|
25
|
-
if exists("g:command_t_loaded")
|
25
|
+
if exists("g:command_t_loaded") || &cp
|
26
26
|
finish
|
27
27
|
endif
|
28
28
|
let g:command_t_loaded = 1
|
29
29
|
|
30
30
|
command CommandTBuffer call <SID>CommandTShowBufferFinder()
|
31
31
|
command CommandTJump call <SID>CommandTShowJumpFinder()
|
32
|
+
command CommandTTag call <SID>CommandTShowTagFinder()
|
32
33
|
command -nargs=? -complete=dir CommandT call <SID>CommandTShowFileFinder(<q-args>)
|
33
34
|
command CommandTFlush call <SID>CommandTFlush()
|
34
35
|
|
@@ -71,6 +72,14 @@ function s:CommandTShowJumpFinder()
|
|
71
72
|
endif
|
72
73
|
endfunction
|
73
74
|
|
75
|
+
function s:CommandTShowTagFinder()
|
76
|
+
if has('ruby')
|
77
|
+
ruby $command_t.show_tag_finder
|
78
|
+
else
|
79
|
+
call s:CommandTRubyWarning()
|
80
|
+
endif
|
81
|
+
endfunction
|
82
|
+
|
74
83
|
function s:CommandTFlush()
|
75
84
|
if has('ruby')
|
76
85
|
ruby $command_t.flush
|
@@ -111,6 +120,10 @@ function CommandTAcceptSelectionVSplit()
|
|
111
120
|
ruby $command_t.accept_selection :command => 'vs'
|
112
121
|
endfunction
|
113
122
|
|
123
|
+
function CommandTRefresh()
|
124
|
+
ruby $command_t.refresh
|
125
|
+
endfunction
|
126
|
+
|
114
127
|
function CommandTToggleFocus()
|
115
128
|
ruby $command_t.toggle_focus
|
116
129
|
endfunction
|
data/ruby/command-t/Makefile
CHANGED
@@ -4,23 +4,23 @@ SHELL = /bin/sh
|
|
4
4
|
#### Start of system configuration section. ####
|
5
5
|
|
6
6
|
srcdir = .
|
7
|
-
topdir = /
|
7
|
+
topdir = /Users/greg/.multiruby/install/1.8.7-p334/lib/ruby/1.8/i686-darwin10.6.0
|
8
8
|
hdrdir = $(topdir)
|
9
9
|
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
10
10
|
exec_prefix = $(prefix)
|
11
|
-
prefix = $(DESTDIR)/
|
11
|
+
prefix = $(DESTDIR)/Users/greg/.multiruby/install/1.8.7-p334
|
12
12
|
sharedstatedir = $(prefix)/com
|
13
|
-
mandir = $(
|
13
|
+
mandir = $(datarootdir)/man
|
14
14
|
psdir = $(docdir)
|
15
15
|
oldincludedir = $(DESTDIR)/usr/include
|
16
16
|
localedir = $(datarootdir)/locale
|
17
17
|
bindir = $(exec_prefix)/bin
|
18
18
|
libexecdir = $(exec_prefix)/libexec
|
19
|
-
sitedir = $(
|
19
|
+
sitedir = $(libdir)/ruby/site_ruby
|
20
20
|
htmldir = $(docdir)
|
21
21
|
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
22
22
|
includedir = $(prefix)/include
|
23
|
-
infodir = $(
|
23
|
+
infodir = $(datarootdir)/info
|
24
24
|
vendorlibdir = $(vendordir)/$(ruby_version)
|
25
25
|
sysconfdir = $(prefix)/etc
|
26
26
|
libdir = $(exec_prefix)/lib
|
@@ -41,28 +41,28 @@ CC = gcc
|
|
41
41
|
LIBRUBY = $(LIBRUBY_SO)
|
42
42
|
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
43
43
|
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
44
|
-
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)
|
44
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
45
45
|
|
46
46
|
RUBY_EXTCONF_H =
|
47
|
-
CFLAGS = -fno-common -
|
47
|
+
CFLAGS = -fno-common -g -O2 -fno-common -pipe -fno-common $(cflags)
|
48
48
|
INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
|
49
49
|
DEFS =
|
50
50
|
CPPFLAGS = -DHAVE_RUBY_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $(DEFS) $(cppflags)
|
51
51
|
CXXFLAGS = $(CFLAGS)
|
52
|
-
ldflags = -L.
|
52
|
+
ldflags = -L.
|
53
53
|
dldflags =
|
54
54
|
archflag =
|
55
55
|
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
|
56
|
-
LDSHARED = cc -
|
56
|
+
LDSHARED = cc -dynamic -bundle -undefined suppress -flat_namespace
|
57
57
|
AR = ar
|
58
58
|
EXEEXT =
|
59
59
|
|
60
60
|
RUBY_INSTALL_NAME = ruby
|
61
61
|
RUBY_SO_NAME = ruby
|
62
|
-
arch =
|
63
|
-
sitearch =
|
62
|
+
arch = i686-darwin10.6.0
|
63
|
+
sitearch = i686-darwin10.6.0
|
64
64
|
ruby_version = 1.8
|
65
|
-
ruby = /
|
65
|
+
ruby = /Users/greg/.multiruby/install/1.8.7-p334/bin/ruby
|
66
66
|
RUBY = $(ruby)
|
67
67
|
RM = rm -f
|
68
68
|
MAKEDIRS = mkdir -p
|
@@ -86,7 +86,7 @@ extout =
|
|
86
86
|
extout_prefix =
|
87
87
|
target_prefix =
|
88
88
|
LOCAL_LIBS =
|
89
|
-
LIBS = $(LIBRUBYARG_SHARED) -
|
89
|
+
LIBS = $(LIBRUBYARG_SHARED) -ldl -lobjc
|
90
90
|
SRCS = ext.c match.c matcher.c
|
91
91
|
OBJS = ext.o match.o matcher.o
|
92
92
|
TARGET = ext
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2010-
|
1
|
+
# Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
2
2
|
#
|
3
3
|
# Redistribution and use in source and binary forms, with or without
|
4
4
|
# modification, are permitted provided that the following conditions are met:
|
@@ -24,6 +24,7 @@
|
|
24
24
|
require 'command-t/finder/buffer_finder'
|
25
25
|
require 'command-t/finder/jump_finder'
|
26
26
|
require 'command-t/finder/file_finder'
|
27
|
+
require 'command-t/finder/tag_finder'
|
27
28
|
require 'command-t/match_window'
|
28
29
|
require 'command-t/prompt'
|
29
30
|
require 'command-t/vim/path_utilities'
|
@@ -48,6 +49,12 @@ module CommandT
|
|
48
49
|
show
|
49
50
|
end
|
50
51
|
|
52
|
+
def show_tag_finder
|
53
|
+
@path = VIM::pwd
|
54
|
+
@active_finder = tag_finder
|
55
|
+
show
|
56
|
+
end
|
57
|
+
|
51
58
|
def show_file_finder
|
52
59
|
# optional parameter will be desired starting directory, or ""
|
53
60
|
@path = File.expand_path(::VIM::evaluate('a:arg'), VIM::pwd)
|
@@ -72,9 +79,17 @@ module CommandT
|
|
72
79
|
end
|
73
80
|
end
|
74
81
|
|
82
|
+
def refresh
|
83
|
+
return unless @active_finder && @active_finder.respond_to?(:flush)
|
84
|
+
@active_finder.flush
|
85
|
+
list_matches
|
86
|
+
end
|
87
|
+
|
75
88
|
def flush
|
76
89
|
@max_height = nil
|
90
|
+
@min_height = nil
|
77
91
|
@file_finder = nil
|
92
|
+
@tag_finder = nil
|
78
93
|
end
|
79
94
|
|
80
95
|
def handle_key
|
@@ -162,7 +177,8 @@ module CommandT
|
|
162
177
|
@match_window = MatchWindow.new \
|
163
178
|
:prompt => @prompt,
|
164
179
|
:match_window_at_top => get_bool('g:CommandTMatchWindowAtTop'),
|
165
|
-
:match_window_reverse => get_bool('g:CommandTMatchWindowReverse')
|
180
|
+
:match_window_reverse => get_bool('g:CommandTMatchWindowReverse'),
|
181
|
+
:min_height => min_height
|
166
182
|
@focus = @prompt
|
167
183
|
@prompt.focus
|
168
184
|
register_for_key_presses
|
@@ -173,25 +189,29 @@ module CommandT
|
|
173
189
|
@max_height ||= get_number('g:CommandTMaxHeight') || 0
|
174
190
|
end
|
175
191
|
|
176
|
-
def
|
177
|
-
|
192
|
+
def min_height
|
193
|
+
@min_height ||= begin
|
194
|
+
min_height = get_number('g:CommandTMinHeight') || 0
|
195
|
+
min_height = max_height if max_height != 0 && min_height > max_height
|
196
|
+
min_height
|
197
|
+
end
|
178
198
|
end
|
179
199
|
|
180
200
|
def get_number name
|
181
|
-
exists?(name) ? ::VIM::evaluate("#{name}").to_i : nil
|
201
|
+
VIM::exists?(name) ? ::VIM::evaluate("#{name}").to_i : nil
|
182
202
|
end
|
183
203
|
|
184
204
|
def get_bool name
|
185
|
-
exists?(name) ? ::VIM::evaluate("#{name}").to_i != 0 : nil
|
205
|
+
VIM::exists?(name) ? ::VIM::evaluate("#{name}").to_i != 0 : nil
|
186
206
|
end
|
187
207
|
|
188
208
|
def get_string name
|
189
|
-
exists?(name) ? ::VIM::evaluate("#{name}").to_s : nil
|
209
|
+
VIM::exists?(name) ? ::VIM::evaluate("#{name}").to_s : nil
|
190
210
|
end
|
191
211
|
|
192
212
|
# expect a string or a list of strings
|
193
213
|
def get_list_or_string name
|
194
|
-
return nil unless exists?(name)
|
214
|
+
return nil unless VIM::exists?(name)
|
195
215
|
list_or_string = ::VIM::evaluate("#{name}")
|
196
216
|
if list_or_string.kind_of?(Array)
|
197
217
|
list_or_string.map { |item| item.to_s }
|
@@ -241,7 +261,8 @@ module CommandT
|
|
241
261
|
selection = relative_path_under_working_directory selection
|
242
262
|
selection = sanitize_path_string selection
|
243
263
|
ensure_appropriate_window_selection
|
244
|
-
|
264
|
+
|
265
|
+
@active_finder.open_selection command, selection, options
|
245
266
|
end
|
246
267
|
|
247
268
|
def map key, function, param = nil
|
@@ -249,12 +270,8 @@ module CommandT
|
|
249
270
|
":call CommandT#{function}(#{param})<CR>"
|
250
271
|
end
|
251
272
|
|
252
|
-
def
|
253
|
-
|
254
|
-
end
|
255
|
-
|
256
|
-
def vt100?
|
257
|
-
!!(::VIM::evaluate('&term') =~ /\Avt100/)
|
273
|
+
def term
|
274
|
+
@term ||= ::VIM::evaluate('&term')
|
258
275
|
end
|
259
276
|
|
260
277
|
def register_for_key_presses
|
@@ -268,28 +285,33 @@ module CommandT
|
|
268
285
|
end
|
269
286
|
|
270
287
|
# "special" keys (overridable by settings)
|
271
|
-
{
|
272
|
-
'Delete' => '<Del>',
|
288
|
+
{
|
273
289
|
'AcceptSelection' => '<CR>',
|
274
290
|
'AcceptSelectionSplit' => ['<C-CR>', '<C-s>'],
|
275
291
|
'AcceptSelectionTab' => '<C-t>',
|
276
292
|
'AcceptSelectionVSplit' => '<C-v>',
|
277
|
-
'
|
293
|
+
'Backspace' => '<BS>',
|
278
294
|
'Cancel' => ['<C-c>', '<Esc>'],
|
279
|
-
'SelectNext' => ['<C-n>', '<C-j>', '<Down>'],
|
280
|
-
'SelectPrev' => ['<C-p>', '<C-k>', '<Up>'],
|
281
295
|
'Clear' => '<C-u>',
|
296
|
+
'CursorEnd' => '<C-e>',
|
282
297
|
'CursorLeft' => ['<Left>', '<C-h>'],
|
283
298
|
'CursorRight' => ['<Right>', '<C-l>'],
|
284
|
-
'
|
285
|
-
'
|
299
|
+
'CursorStart' => '<C-a>',
|
300
|
+
'Delete' => '<Del>',
|
301
|
+
'Refresh' => '<C-f>',
|
302
|
+
'SelectNext' => ['<C-n>', '<C-j>', '<Down>'],
|
303
|
+
'SelectPrev' => ['<C-p>', '<C-k>', '<Up>'],
|
304
|
+
'ToggleFocus' => '<Tab>',
|
305
|
+
}.each do |key, value|
|
286
306
|
if override = get_list_or_string("g:CommandT#{key}Map")
|
287
|
-
|
307
|
+
Array(override).each do |mapping|
|
288
308
|
map mapping, key
|
289
309
|
end
|
290
310
|
else
|
291
|
-
|
292
|
-
|
311
|
+
Array(value).each do |mapping|
|
312
|
+
unless mapping == '<Esc>' && term =~ /\A(screen|xterm|vt100)/
|
313
|
+
map mapping, key
|
314
|
+
end
|
293
315
|
end
|
294
316
|
end
|
295
317
|
end
|
@@ -326,5 +348,10 @@ module CommandT
|
|
326
348
|
def jump_finder
|
327
349
|
@jump_finder ||= CommandT::JumpFinder.new
|
328
350
|
end
|
351
|
+
|
352
|
+
def tag_finder
|
353
|
+
@tag_finder ||= CommandT::TagFinder.new \
|
354
|
+
:include_filenames => get_bool('g:CommandTTagIncludeFilenames')
|
355
|
+
end
|
329
356
|
end # class Controller
|
330
357
|
end # module commandT
|
data/ruby/command-t/ext.bundle
CHANGED
Binary file
|
data/ruby/command-t/extconf.rb
CHANGED
data/ruby/command-t/finder.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2010-
|
1
|
+
# Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
2
2
|
#
|
3
3
|
# Redistribution and use in source and binary forms, with or without
|
4
4
|
# modification, are permitted provided that the following conditions are met:
|
@@ -31,6 +31,8 @@ module CommandT
|
|
31
31
|
# Specialized subclasses use different kinds of scanners adapted for
|
32
32
|
# different kinds of search (files, buffers).
|
33
33
|
class Finder
|
34
|
+
include VIM::PathUtilities
|
35
|
+
|
34
36
|
def initialize path = Dir.pwd, options = {}
|
35
37
|
raise RuntimeError, 'Subclass responsibility'
|
36
38
|
end
|
@@ -41,8 +43,8 @@ module CommandT
|
|
41
43
|
@matcher.sorted_matches_for str, options
|
42
44
|
end
|
43
45
|
|
44
|
-
def
|
45
|
-
|
46
|
+
def open_selection command, selection, options = {}
|
47
|
+
::VIM::command "silent #{command} #{selection}"
|
46
48
|
end
|
47
49
|
|
48
50
|
def path= path
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2010-
|
1
|
+
# Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
2
2
|
#
|
3
3
|
# Redistribution and use in source and binary forms, with or without
|
4
4
|
# modification, are permitted provided that the following conditions are met:
|
@@ -31,5 +31,9 @@ module CommandT
|
|
31
31
|
@scanner = FileScanner.new path, options
|
32
32
|
@matcher = Matcher.new @scanner, options
|
33
33
|
end
|
34
|
+
|
35
|
+
def flush
|
36
|
+
@scanner.flush
|
37
|
+
end
|
34
38
|
end # class FileFinder
|
35
39
|
end # CommandT
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Copyright 2011-2012 Wincent Colaiuta. All rights reserved.
|
2
|
+
#
|
3
|
+
# Redistribution and use in source and binary forms, with or without
|
4
|
+
# modification, are permitted provided that the following conditions are met:
|
5
|
+
#
|
6
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
7
|
+
# this list of conditions and the following disclaimer.
|
8
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer in the documentation
|
10
|
+
# and/or other materials provided with the distribution.
|
11
|
+
#
|
12
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
13
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
14
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
15
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
16
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
17
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
18
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
19
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
20
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
21
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
22
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
|
24
|
+
require 'command-t/ext' # CommandT::Matcher
|
25
|
+
require 'command-t/scanner/tag_scanner'
|
26
|
+
require 'command-t/finder'
|
27
|
+
|
28
|
+
module CommandT
|
29
|
+
class TagFinder < Finder
|
30
|
+
def initialize options = {}
|
31
|
+
@scanner = TagScanner.new options
|
32
|
+
@matcher = Matcher.new @scanner, :always_show_dot_files => true
|
33
|
+
end
|
34
|
+
|
35
|
+
def open_selection command, selection, options = {}
|
36
|
+
if @scanner.include_filenames
|
37
|
+
selection = selection[0, selection.index(':')]
|
38
|
+
end
|
39
|
+
|
40
|
+
# open the tag and center the screen on it
|
41
|
+
::VIM::command "silent! tag #{selection} | :normal zz"
|
42
|
+
end
|
43
|
+
end # class TagFinder
|
44
|
+
end # module CommandT
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2010-
|
1
|
+
# Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
2
2
|
#
|
3
3
|
# Redistribution and use in source and binary forms, with or without
|
4
4
|
# modification, are permitted provided that the following conditions are met:
|
@@ -26,14 +26,17 @@ require 'command-t/settings'
|
|
26
26
|
|
27
27
|
module CommandT
|
28
28
|
class MatchWindow
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
SELECTION_MARKER = '> '
|
30
|
+
MARKER_LENGTH = SELECTION_MARKER.length
|
31
|
+
UNSELECTED_MARKER = ' ' * MARKER_LENGTH
|
32
|
+
MH_START = '<commandt>'
|
33
|
+
MH_END = '</commandt>'
|
34
|
+
@@buffer = nil
|
33
35
|
|
34
36
|
def initialize options = {}
|
35
37
|
@prompt = options[:prompt]
|
36
38
|
@reverse_list = options[:match_window_reverse]
|
39
|
+
@min_height = options[:min_height]
|
37
40
|
|
38
41
|
# save existing window dimensions so we can restore them later
|
39
42
|
@windows = []
|
@@ -80,6 +83,12 @@ module CommandT
|
|
80
83
|
'setlocal textwidth=0' # don't hard-wrap (break long lines)
|
81
84
|
].each { |command| ::VIM::command command }
|
82
85
|
|
86
|
+
# don't show the color column
|
87
|
+
::VIM::command 'setlocal colorcolumn=0' if VIM::exists?('+colorcolumn')
|
88
|
+
|
89
|
+
# don't show relative line numbers
|
90
|
+
::VIM::command 'setlocal norelativenumber' if VIM::exists?('+relativenumber')
|
91
|
+
|
83
92
|
# sanity check: make sure the buffer really was created
|
84
93
|
raise "Can't find GoToFile buffer" unless $curbuf.name.match /GoToFile\z/
|
85
94
|
@@buffer = $curbuf
|
@@ -87,9 +96,22 @@ module CommandT
|
|
87
96
|
|
88
97
|
# syntax coloring
|
89
98
|
if VIM::has_syntax?
|
90
|
-
::VIM::command "syntax match CommandTSelection \"^#{
|
99
|
+
::VIM::command "syntax match CommandTSelection \"^#{SELECTION_MARKER}.\\+$\""
|
91
100
|
::VIM::command 'syntax match CommandTNoEntries "^-- NO MATCHES --$"'
|
92
101
|
::VIM::command 'syntax match CommandTNoEntries "^-- NO SUCH FILE OR DIRECTORY --$"'
|
102
|
+
::VIM::command 'setlocal synmaxcol=9999'
|
103
|
+
|
104
|
+
if VIM::has_conceal?
|
105
|
+
::VIM::command 'setlocal conceallevel=2'
|
106
|
+
::VIM::command 'setlocal concealcursor=nvic'
|
107
|
+
::VIM::command 'syntax region CommandTCharMatched ' \
|
108
|
+
"matchgroup=CommandTCharMatched start=+#{MH_START}+ " \
|
109
|
+
"matchgroup=CommandTCharMatchedEnd end=+#{MH_END}+ concealends"
|
110
|
+
::VIM::command 'highlight def CommandTCharMatched ' \
|
111
|
+
'term=bold,underline cterm=bold,underline ' \
|
112
|
+
'gui=bold,underline'
|
113
|
+
end
|
114
|
+
|
93
115
|
::VIM::command 'highlight link CommandTSelection Visual'
|
94
116
|
::VIM::command 'highlight link CommandTNoEntries Error'
|
95
117
|
::VIM::evaluate 'clearmatches()'
|
@@ -103,8 +125,8 @@ module CommandT
|
|
103
125
|
# by some unexpected means of dismissing or leaving the Command-T window
|
104
126
|
# (eg. <C-W q>, <C-W k> etc)
|
105
127
|
::VIM::command 'autocmd! * <buffer>'
|
106
|
-
::VIM::command 'autocmd BufLeave <buffer> ruby $command_t.leave'
|
107
|
-
::VIM::command 'autocmd BufUnload <buffer> ruby $command_t.unload'
|
128
|
+
::VIM::command 'autocmd BufLeave <buffer> silent! ruby $command_t.leave'
|
129
|
+
::VIM::command 'autocmd BufUnload <buffer> silent! ruby $command_t.unload'
|
108
130
|
|
109
131
|
@has_focus = false
|
110
132
|
@selection = nil
|
@@ -113,6 +135,16 @@ module CommandT
|
|
113
135
|
end
|
114
136
|
|
115
137
|
def close
|
138
|
+
# Unlisted buffers like those provided by Netrw, NERDTree and Vim's help
|
139
|
+
# don't actually appear in the buffer list; if they are the only such
|
140
|
+
# buffers present when Command-T is invoked (for example, when invoked
|
141
|
+
# immediately after starting Vim with a directory argument, like `vim .`)
|
142
|
+
# then performing the normal clean-up will yield an "E90: Cannot unload
|
143
|
+
# last buffer" error. We can work around that by doing a :quit first.
|
144
|
+
if ::VIM::Buffer.count == 0
|
145
|
+
::VIM::command 'silent quit'
|
146
|
+
end
|
147
|
+
|
116
148
|
# Workaround for upstream bug in Vim 7.3 on some platforms
|
117
149
|
#
|
118
150
|
# On some platforms, $curbuf.number always returns 0. One workaround is
|
@@ -123,10 +155,10 @@ module CommandT
|
|
123
155
|
# For more details, see: https://wincent.com/issues/1617
|
124
156
|
if $curbuf.number == 0
|
125
157
|
# use bwipeout as bunload fails if passed the name of a hidden buffer
|
126
|
-
::VIM::command 'bwipeout! GoToFile'
|
158
|
+
::VIM::command 'silent! bwipeout! GoToFile'
|
127
159
|
@@buffer = nil
|
128
160
|
else
|
129
|
-
::VIM::command "bunload! #{@@buffer.number}"
|
161
|
+
::VIM::command "silent! bunload! #{@@buffer.number}"
|
130
162
|
end
|
131
163
|
end
|
132
164
|
|
@@ -244,7 +276,7 @@ module CommandT
|
|
244
276
|
return unless VIM::Window.select(@window)
|
245
277
|
unlock
|
246
278
|
clear
|
247
|
-
@window.height = 1
|
279
|
+
@window.height = @min_height > 0 ? @min_height : 1
|
248
280
|
@@buffer[1] = "-- #{msg} --"
|
249
281
|
lock
|
250
282
|
end
|
@@ -273,17 +305,39 @@ module CommandT
|
|
273
305
|
end
|
274
306
|
|
275
307
|
def match_text_for_idx idx
|
276
|
-
match = truncated_match @matches[idx]
|
308
|
+
match = truncated_match @matches[idx].to_s
|
277
309
|
if idx == @selection
|
278
|
-
prefix =
|
310
|
+
prefix = SELECTION_MARKER
|
279
311
|
suffix = padding_for_selected_match match
|
280
312
|
else
|
281
|
-
|
313
|
+
if VIM::has_syntax? && VIM::has_conceal?
|
314
|
+
match = match_with_syntax_highlight match
|
315
|
+
end
|
316
|
+
prefix = UNSELECTED_MARKER
|
282
317
|
suffix = ''
|
283
318
|
end
|
284
319
|
prefix + match + suffix
|
285
320
|
end
|
286
321
|
|
322
|
+
# Highlight matching characters within the matched string.
|
323
|
+
#
|
324
|
+
# Note that this is only approximate; it will highlight the first matching
|
325
|
+
# instances within the string, which may not actually be the instances that
|
326
|
+
# were used by the matching/scoring algorithm to determine the best score
|
327
|
+
# for the match.
|
328
|
+
#
|
329
|
+
def match_with_syntax_highlight match
|
330
|
+
highlight_chars = @prompt.abbrev.downcase.chars.to_a
|
331
|
+
match.chars.inject([]) do |output, char|
|
332
|
+
if char.downcase == highlight_chars.first
|
333
|
+
highlight_chars.shift
|
334
|
+
output.concat [MH_START, char, MH_END]
|
335
|
+
else
|
336
|
+
output << char
|
337
|
+
end
|
338
|
+
end.join
|
339
|
+
end
|
340
|
+
|
287
341
|
# Print just the specified match.
|
288
342
|
def print_match idx
|
289
343
|
return unless VIM::Window.select(@window)
|
@@ -305,7 +359,8 @@ module CommandT
|
|
305
359
|
@window_width = @window.width # update cached value
|
306
360
|
max_lines = VIM::Screen.lines - 5
|
307
361
|
max_lines = 1 if max_lines < 0
|
308
|
-
actual_lines = match_count
|
362
|
+
actual_lines = match_count < @min_height ? @min_height : match_count
|
363
|
+
actual_lines = max_lines if actual_lines > max_lines
|
309
364
|
@window.height = actual_lines
|
310
365
|
(1..actual_lines).each do |line|
|
311
366
|
idx = line - 1
|
@@ -323,10 +378,10 @@ module CommandT
|
|
323
378
|
# highlighting extends all the way to the right edge of the window.
|
324
379
|
def padding_for_selected_match str
|
325
380
|
len = str.length
|
326
|
-
if len >= @window_width -
|
381
|
+
if len >= @window_width - MARKER_LENGTH
|
327
382
|
''
|
328
383
|
else
|
329
|
-
' ' * (@window_width -
|
384
|
+
' ' * (@window_width - MARKER_LENGTH - len)
|
330
385
|
end
|
331
386
|
end
|
332
387
|
|
@@ -334,7 +389,7 @@ module CommandT
|
|
334
389
|
# window width.
|
335
390
|
def truncated_match str
|
336
391
|
len = str.length
|
337
|
-
available_width = @window_width -
|
392
|
+
available_width = @window_width - MARKER_LENGTH
|
338
393
|
return str if len <= available_width
|
339
394
|
left = (available_width / 2) - 1
|
340
395
|
right = (available_width / 2) - 2 + (available_width % 2)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Copyright 2011-2012 Wincent Colaiuta. All rights reserved.
|
2
|
+
#
|
3
|
+
# Redistribution and use in source and binary forms, with or without
|
4
|
+
# modification, are permitted provided that the following conditions are met:
|
5
|
+
#
|
6
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
7
|
+
# this list of conditions and the following disclaimer.
|
8
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer in the documentation
|
10
|
+
# and/or other materials provided with the distribution.
|
11
|
+
#
|
12
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
13
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
14
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
15
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
16
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
17
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
18
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
19
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
20
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
21
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
22
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
|
24
|
+
require 'command-t/vim'
|
25
|
+
require 'command-t/scanner'
|
26
|
+
|
27
|
+
module CommandT
|
28
|
+
class TagScanner < Scanner
|
29
|
+
attr_reader :include_filenames
|
30
|
+
|
31
|
+
def initialize options = {}
|
32
|
+
@include_filenames = options[:include_filenames] || false
|
33
|
+
end
|
34
|
+
|
35
|
+
def paths
|
36
|
+
taglist.map do |tag|
|
37
|
+
path = tag['name']
|
38
|
+
path << ":#{tag['filename']}" if @include_filenames
|
39
|
+
path
|
40
|
+
end.uniq.sort
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def taglist
|
46
|
+
::VIM::evaluate 'taglist(".")'
|
47
|
+
end
|
48
|
+
end # class TagScanner
|
49
|
+
end # module CommandT
|
data/ruby/command-t/stub.rb
CHANGED
@@ -27,7 +27,7 @@ module CommandT
|
|
27
27
|
'Please see INSTALLATION and TROUBLE-SHOOTING in the help',
|
28
28
|
'For more information type: :help command-t']
|
29
29
|
|
30
|
-
[:flush, :show_buffer_finder, :show_file_finder].each do |method|
|
30
|
+
[:flush, :show_buffer_finder, :show_file_finder, :show_tag_finder].each do |method|
|
31
31
|
define_method(method.to_sym) { warn *@@load_error }
|
32
32
|
end
|
33
33
|
|
data/ruby/command-t/vim.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2010-
|
1
|
+
# Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
2
2
|
#
|
3
3
|
# Redistribution and use in source and binary forms, with or without
|
4
4
|
# modification, are permitted provided that the following conditions are met:
|
@@ -30,6 +30,14 @@ module CommandT
|
|
30
30
|
::VIM::evaluate('has("syntax")').to_i != 0
|
31
31
|
end
|
32
32
|
|
33
|
+
def self.exists? str
|
34
|
+
::VIM::evaluate(%{exists("#{str}")}).to_i != 0
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.has_conceal?
|
38
|
+
::VIM::evaluate('has("conceal")').to_i != 0
|
39
|
+
end
|
40
|
+
|
33
41
|
def self.pwd
|
34
42
|
::VIM::evaluate 'getcwd()'
|
35
43
|
end
|
metadata
CHANGED
@@ -4,9 +4,8 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
|
-
-
|
8
|
-
|
9
|
-
version: 1.3.1
|
7
|
+
- 4
|
8
|
+
version: "1.4"
|
10
9
|
platform: ruby
|
11
10
|
authors:
|
12
11
|
- Wincent Colaiuta
|
@@ -40,6 +39,7 @@ files:
|
|
40
39
|
- ruby/command-t/finder/buffer_finder.rb
|
41
40
|
- ruby/command-t/finder/file_finder.rb
|
42
41
|
- ruby/command-t/finder/jump_finder.rb
|
42
|
+
- ruby/command-t/finder/tag_finder.rb
|
43
43
|
- ruby/command-t/finder.rb
|
44
44
|
- ruby/command-t/Makefile
|
45
45
|
- ruby/command-t/match.c
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- ruby/command-t/scanner/buffer_scanner.rb
|
53
53
|
- ruby/command-t/scanner/file_scanner.rb
|
54
54
|
- ruby/command-t/scanner/jump_scanner.rb
|
55
|
+
- ruby/command-t/scanner/tag_scanner.rb
|
55
56
|
- ruby/command-t/scanner.rb
|
56
57
|
- ruby/command-t/settings.rb
|
57
58
|
- ruby/command-t/stub.rb
|
@@ -60,7 +61,6 @@ files:
|
|
60
61
|
- ruby/command-t/vim/window.rb
|
61
62
|
- ruby/command-t/vim.rb
|
62
63
|
- doc/command-t.txt
|
63
|
-
- doc/tags
|
64
64
|
- plugin/command-t.vim
|
65
65
|
has_rdoc: true
|
66
66
|
homepage: https://wincent.com/products/command-t
|
data/doc/tags
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
:CommandT command-t.txt /*:CommandT*
|
2
|
-
:CommandTBuffer command-t.txt /*:CommandTBuffer*
|
3
|
-
:CommandTFlush command-t.txt /*:CommandTFlush*
|
4
|
-
:CommandTJumps command-t.txt /*:CommandTJumps*
|
5
|
-
command-t command-t.txt /*command-t*
|
6
|
-
command-t-authors command-t.txt /*command-t-authors*
|
7
|
-
command-t-commands command-t.txt /*command-t-commands*
|
8
|
-
command-t-contents command-t.txt /*command-t-contents*
|
9
|
-
command-t-donations command-t.txt /*command-t-donations*
|
10
|
-
command-t-history command-t.txt /*command-t-history*
|
11
|
-
command-t-installation command-t.txt /*command-t-installation*
|
12
|
-
command-t-intro command-t.txt /*command-t-intro*
|
13
|
-
command-t-license command-t.txt /*command-t-license*
|
14
|
-
command-t-mappings command-t.txt /*command-t-mappings*
|
15
|
-
command-t-options command-t.txt /*command-t-options*
|
16
|
-
command-t-pathogen command-t.txt /*command-t-pathogen*
|
17
|
-
command-t-requirements command-t.txt /*command-t-requirements*
|
18
|
-
command-t-trouble-shooting command-t.txt /*command-t-trouble-shooting*
|
19
|
-
command-t-usage command-t.txt /*command-t-usage*
|
20
|
-
command-t-website command-t.txt /*command-t-website*
|
21
|
-
command-t-wildignore command-t.txt /*command-t-wildignore*
|
22
|
-
command-t.txt command-t.txt /*command-t.txt*
|
23
|
-
g:CommandTAcceptSelectionMap command-t.txt /*g:CommandTAcceptSelectionMap*
|
24
|
-
g:CommandTAcceptSelectionSplitMap command-t.txt /*g:CommandTAcceptSelectionSplitMap*
|
25
|
-
g:CommandTAcceptSelectionTabMap command-t.txt /*g:CommandTAcceptSelectionTabMap*
|
26
|
-
g:CommandTAcceptSelectionVSplitMap command-t.txt /*g:CommandTAcceptSelectionVSplitMap*
|
27
|
-
g:CommandTAlwaysShowDotFiles command-t.txt /*g:CommandTAlwaysShowDotFiles*
|
28
|
-
g:CommandTBackspaceMap command-t.txt /*g:CommandTBackspaceMap*
|
29
|
-
g:CommandTCancelMap command-t.txt /*g:CommandTCancelMap*
|
30
|
-
g:CommandTClearMap command-t.txt /*g:CommandTClearMap*
|
31
|
-
g:CommandTCursorEndMap command-t.txt /*g:CommandTCursorEndMap*
|
32
|
-
g:CommandTCursorLeftMap command-t.txt /*g:CommandTCursorLeftMap*
|
33
|
-
g:CommandTCursorRightMap command-t.txt /*g:CommandTCursorRightMap*
|
34
|
-
g:CommandTCursorStartMap command-t.txt /*g:CommandTCursorStartMap*
|
35
|
-
g:CommandTDeleteMap command-t.txt /*g:CommandTDeleteMap*
|
36
|
-
g:CommandTMatchWindowAtTop command-t.txt /*g:CommandTMatchWindowAtTop*
|
37
|
-
g:CommandTMatchWindowReverse command-t.txt /*g:CommandTMatchWindowReverse*
|
38
|
-
g:CommandTMaxCachedDirectories command-t.txt /*g:CommandTMaxCachedDirectories*
|
39
|
-
g:CommandTMaxDepth command-t.txt /*g:CommandTMaxDepth*
|
40
|
-
g:CommandTMaxFiles command-t.txt /*g:CommandTMaxFiles*
|
41
|
-
g:CommandTMaxHeight command-t.txt /*g:CommandTMaxHeight*
|
42
|
-
g:CommandTNeverShowDotFiles command-t.txt /*g:CommandTNeverShowDotFiles*
|
43
|
-
g:CommandTScanDotDirectories command-t.txt /*g:CommandTScanDotDirectories*
|
44
|
-
g:CommandTSelectNextMap command-t.txt /*g:CommandTSelectNextMap*
|
45
|
-
g:CommandTSelectPrevMap command-t.txt /*g:CommandTSelectPrevMap*
|
46
|
-
g:CommandTToggleFocusMap command-t.txt /*g:CommandTToggleFocusMap*
|